我正在使用 Asp.net MVC5,自从使用 Microsoft MVC 平台 4 年以来,还没有遇到过这样的模棱两可的错误!错误发生在Manage默认 MVC5 模板中的页面。这里在第 26 行 at the _layout.cshtml
file:
Line 24: <![endif]-->
Line 25:
Line 26: @Scripts.Render("~/js/intf")
Line 27: <script>
Line 28: if (document.documentMode === 10) {
堆栈跟踪说:
[NullReferenceException:未将对象引用设置为实例
对象。] ASP._Page_Views_Shared__Layout_cshtml.Execute() 中
c:\Users\fake\Documents\Visual Studio
2013\项目\名称\名称\视图\Shared_Layout.cshtml:26
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +198
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +104
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext
pageContext、TextWriter writer、WebPageRenderingBase startPage) +90
System.Web.WebPages.c__DisplayClass7.b__6(TextWriter
作家)+232 System.Web.WebPages.HelperResult.WriteTo(TextWriter
作家)+10 System.Web.WebPages.WebPageBase.Write(HelperResult
结果)+80
System.Web.WebPages.WebPageBase.RenderSurrounding(字符串
部分视图名称、操作1 body) +63
System.Web.WebPages.WebPageBase.PopContext() +267
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext
pageContext, TextWriter writer, WebPageRenderingBase startPage) +98
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext,
TextWriter writer, Object instance) +235
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext
viewContext, TextWriter writer) +107
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
+291 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext
controllerContext, ActionResult actionResult) +13
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1
过滤器,Int32 filterIndex,ResultExecutingContext preContext,
ControllerContext 控制器上下文、ActionResult 动作结果) +56
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1
filters, Int32 filterIndex, ResultExecutingContext preContext,
ControllerContext controllerContext, ActionResult actionResult) +420
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext
controllerContext, IList
1个过滤器,ActionResult(actionResult)+52
System.Web.Mvc.Async.c__DisplayClass28.b__19()
+173 System.Web.Mvc.Async.c__DisplayClass1e.b__1b(IAsyncResult
异步结果)+100
System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult
asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.结束() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult
异步结果)+27
System.Web.Mvc.Controller.b__1d(IAsyncResult
asyncResult、ExecuteCoreState 内部状态)+13
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult
asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase
1.结束() +54
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+39
System.Web.Mvc.Controller.b__15(IAsyncResult
asyncResult,控制器控制器)+12
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult
asyncResult) +28
System.Web.Mvc.Async.WrappedAsyncResultBase
1.结束() +54
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+29
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult
异步结果)+10
System.Web.Mvc.MvcHandler.b__4(IAsyncResult
asyncResult、ProcessRequestState 内部状态)+21
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult
asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase
1.结束() +54
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
+31 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult
结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
+9688704 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔值&completedSynchronously) +155
Edit:
由于您想要捆绑代码,我将其中之一放在这里:
bundles.Add(new ScriptBundle("~/js/intf").Include(//first internal scripts
"~/js/jquery*",
"~/js/modernizr.js",
"~/js/ie-prototype-polyfill.js",
"~/js/prettyPhoto.js"));
NOTE:如果我注释错误行(样式/脚本捆绑行),错误将是@ViewBag.Title
作为新的错误!我认为 Razor 视图引擎在这里遇到了麻烦,因为它无法实例化视图的代码要求,但是为什么?
我知道使用 Microsoft 技术时出现的一些错误与它所说的错误并不真正相关。请留下您的有益经验。谢谢。
Update:
简洁的内容为~/views/Account/Manage.cshtml
文件可能有用:
@using Social.Models;
@using Microsoft.AspNet.Identity;
@{
ViewBag.Title = "manage";
}
<div class="layout-app">
<div class="row row-app margin-none">
<div class="col-md-12">
@if (ViewBag.HasLocalPassword)
{
@Html.Partial("_ChangePasswordPartial")
}
else
{
@Html.Partial("_SetPasswordPartial")
}
</div>
</div>
</div>