【发布时间】:2011-01-25 01:46:40
【问题描述】:
我刚刚遇到了一些我不希望看到的错误...
为了清楚起见,我将展示工作代码和错误代码:
这是有效的
_MainLayout.cshtml
<div id="content">
<h1>@Page.Title</h1>
@RenderSection("left", false)
@RenderBody()
</div>
Page.cshtml
@section left{
<p>Some text on left side</p>
}
<div>
Some content
</div>
在这种情况下,一切正常,但是当我在 _MainLayout.cshtml 中删除 @RenderSection("left", false) 时,我得到了异常!我需要哪种情况?请参见下面的示例:
这不起作用
_MainLayout.cshtml
@if (WebSecurity.IsAuthenticated) {
<h1>@Page.Title</h1>
@RenderSection("left", false)
@RenderBody()
} else {
<h1>You not logged in!</h1>
<p>To see this page, you have to login first.</p>
}
Page.cshtml
@section left{
<p>Some text on left side</p>
}
<div>
Some content
</div>
在这种情况下,如果用户未通过身份验证,我有这个异常:
描述: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
异常详情: System.Web.HttpException: Следующие разделы были определены, но не были обработаны для страницы макета "~/_MainLayout.cshtml": "left".
可以翻译为:Section was created but wasn't rendered for layout page "~/_MainLayout.cshtml": "left".
来源错误:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
堆栈跟踪:
[HttpException (0x80004005): Следующие разделы были определены, но не были обработаны для страницы макета "~/_MainLayout.cshtml": "left".]
System.Web.WebPages.WebPageBase.VerifyRenderedBodyOrSections() +91298
System.Web.WebPages.WebPageBase.PopContext() +332
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +95
System.Web.WebPages.<>c__DisplayClass7.<RenderPageCore>b__6(TextWriter writer) +102
System.Web.WebPages.HelperResult.WriteTo(TextWriter writer) +12
System.Web.WebPages.WebPageBase.Write(HelperResult result) +67
System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body) +66
System.Web.WebPages.WebPageBase.PopContext() +262
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +95
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContext context) +249
问题是:我怎样才能让它发挥作用? 任何建议都很有价值!
【问题讨论】: