MVC5对象引用未设置为Scripts.Render上的对象实例

Ami*_*rzi 12 c# asp.net-mvc razor asp.net-mvc-5

我正在使用Asp.net MVC5,并且自从使用Microsoft MVC平台4年以来没有遇到过这样的模糊错误!默认MVC5模板中的管理页面中发生错误.这里是第26行_layout.cshtml文件:

Line 24:     <![endif]-->
Line 25: 
Line 26:     @Scripts.Render("~/js/intf")
Line 27:     <script>
Line 28:         if (document.documentMode === 10) {
Run Code Online (Sandbox Code Playgroud)

Stack Trace说:

[NullReferenceException:对象引用未设置为对象的实例.]在c:\ Users\fake\Documents\Visual Studio 2013\Projects \name \name\Views\Shared_Layout.cshtml:26
System中的ASP._Page_Views_Shared__Layout_cshtml.Execute().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 writer)+232 System.Web.WebPages.HelperResult.WriteTo(TextWriter writer)+10 System.Web.WebPages.WebPageBase.Write(HelperResult result)+80
System.Web.WebPages.WebPageBase .RenderSurrounding(String partialViewName,Action 1 filters,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)+56 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters,ActionResult actionResult)+52 System.Web.Mvc.Async.<> c__DisplayClass28.b__19()+ 173 System.Web.Mvc.Async.<> c__DisplayClass1e.b__1b(IAsyncResult asyncResult)+100 System.Web.Mvc.Async.WrappedAsyncResult 1.End ()+49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)+27 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState innerState)+13 System.Web.Mvc.Async.WrappedAsyncVoid 1.结束()+54 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+39 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult,Controller controller)+12 System.Web.Mvc.Async.WrappedAsyncVoid 1.End ()+54 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+29 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)+10 System.Web.Mvc. MvcHandler.b__4(IAsyncResult asyncResult,ProcessRequestState innerState)+21 System.Web.Mvc.Async.WrappedAsyncVoid 1.End()+54 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResu)lt asyncResult)+31 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)+9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+ 9688704 System.Web.HttpApplication .ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+1551 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 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +420
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList


1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase



1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase


1.CallEndDelegate(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.WrappedAsyncResultBase




1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase


编辑:你想要捆绑代码,我把其中一个放在这里:

bundles.Add(new ScriptBundle("~/js/intf").Include(//first internal scripts
                "~/js/jquery*",
                "~/js/modernizr.js",
                "~/js/ie-prototype-polyfill.js",
                "~/js/prettyPhoto.js"));
Run Code Online (Sandbox Code Playgroud)

注意:如果我纪念错误行(样式/脚本捆绑行)错误将@ViewBag.Title作为新错误!我认为Razor视图引擎在这里遇到了麻烦,因为它无法实例化视图的代码要求,但为什么呢?

我知道使用Microsoft技术时的一些错误与它所说的错误并不真正相关.请给我留下你的有益经验.谢谢.

更新:~/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>
Run Code Online (Sandbox Code Playgroud)

Ami*_*rzi 5

ViewBag在主布局文件中滥用以在其他页面中使用。我的结构ViewBag作为必填字段,所以我必须在之前实例化它。但是我忘记实例化它导致触发这样的错误并且它似乎与Scripts.Render.