我在ASP.NET MVC 4中有一个多级布局母版页.
我有以下几点:
<title>@ViewBag.Title</title>
布局页面的顺序如下:
> _Layout.cshtml
> _SubLayout.cshtml(基于_Layout.cshtml)
> Index.cshtml(基于_SubLayout.cshtml)
我在Index Action中设置了@ ViewBag.Title.但是,我得到以下异常:
Value cannot be null or empty. Parameter name: contentPath
这是我的代码我只是让ASP.NET设计模式图书的代码适用于VS 2012 / MVC 4
_Layout.cshtml
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="utf-8" /> <title>@ViewBag.Title</title> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <Meta name="viewport" content="width=device-width" /> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> </head> <body> <div id="main"> <div id="header"> <span><a href="@Url.Content("")"> <img alt="Agatha's Clothing Store" src="@Url.Content("/Content/Images/Structure/lg_logo.png")" border="0" /></a></span> </div> <div id="headerSummary"> @RenderSection("headerBasketSummary",required: false) </div> <div class="topBarContainer"> <div id="background"> <div id="navigation"> @RenderSection("MenuContent",required: false) </div> <div id="content"> @RenderBody() </div> <div style="clear: both;" /> </div> </div> @Html.Partial("_SiteFooter") </div> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/json2/20121008/json2.js"></script> <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-jtemplates.js")"></script> <script type="text/javascript" src="@Url.Content("~/Scripts/agatha-common-scripts.js")"></script> </body> </html>
_ProductCatalogProduct.cshtml
@model BaseProductCatalogPageView @using Agathas.Storefront.Controllers.viewmodels.ProductCatalog @using Agathas.Storefront.UI.Web.MVC.Helpers @{ Layout = "~/Views/Shared/_Layout.cshtml"; } @if (IsSectionDefined("MenuContent")) { @RenderSection("MenuContent",required: false) } else { @Html.Partial("_Categories",((BaseProductCatalogPageView)Model).Categories) } @RenderBody();
Index.cshtml
@model HomePageView @using Agathas.Storefront.Controllers.viewmodels.ProductCatalog @using Agathas.Storefront.Services.viewmodels @using Agathas.Storefront.UI.Web.MVC.Helpers @{ Layout = "~/Views/Shared/_ProductCatalogLayout.cshtml"; ViewBag.Title = "Home Page"; } <img width="559" height="297" src="@Url.Content("~/Content/Images/Products/product-lifestyle.jpg")" style="border-width: 0px; padding: 0px; margin: 0px" /> <div style="clear: both;"></div> <h2>Top Products</h2> <div id="items" style="border-width: 1px; padding: 0px; margin: 0px"> <ul class="items-list"> @foreach (ProductSummaryView product in Model.Products) { <li class="item-detail"> <a class="item-productimage-link" href="@Url.Action("Detail","Product",new { id = product.Id },null)"> <img class="item-productimage" src="@Url.Content("~/Content/Images/Products/" + product.Id.ToString() +".jpg"))" /></a> <div class="item-productname">@Html.ActionLink(product.BrandName + " " + product.Name,"Detail",null)</div> <div class="item-price">@product.Price</div> </li> } </ul> </div>
非常感谢