其中 + FirstOrDefault()。ArgumentNullException 值不能为 null

Where + FirstOrDefault(). ArgumentNullException Value cannot be null

提问人:Daniel 提问时间:2/18/2021 最后编辑:eyllanescDaniel 更新时间:2/23/2021 访问量:131

问:

由于某种原因,我无法在在线网站上打开详细信息页面。在本地网站上它确实有效,我检查了事件查看器,这就是我得到的:

ArgumentNullException 
   Value cannot be null. Parameter name: source at System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate) at ASP._Page_Views_Shared__LoginPartial_cshtml.Execute() in d:\inetpub\wwwroot\TestMap\Views\Shared\_LoginPartial.cshtml:line 30 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) at ASP._Page_Views_Shared__TopNavbar_cshtml.Execute() in d:\inetpub\wwwroot\TestMap\Views\Shared\_TopNavbar.cshtml:line 13 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) at ASP._Page_Views_Shared__Layout_cshtml.Execute() in d:\inetpub\wwwroot\TestMap\Views\Shared\_Layout.cshtml:line 73 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.WebPages.WebPageBase.<>c__DisplayClass40_0.<RenderPageCore>b__0(TextWriter writer) at System.Web.WebPages.WebPageBase.Write(HelperResult result) at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body) at System.Web.WebPages.WebPageBase.PopContext() at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.HttpApplication.CallHandlerExecutionStep.InvokeEndHandler(IAsyncResult ar) at System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)  
   at System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate) at ASP._Page_Views_Shared__LoginPartial_cshtml.Execute() in d:\inetpub\wwwroot\TestMap\Views\Shared\_LoginPartial.cshtml:line 30 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) at ASP._Page_Views_Shared__TopNavbar_cshtml.Execute() in d:\inetpub\wwwroot\TestMap\Views\Shared\_TopNavbar.cshtml:line 13 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) at ASP._Page_Views_Shared__Layout_cshtml.Execute() in d:\inetpub\wwwroot\TestMap\Views\Shared\_Layout.cshtml:line 73 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.WebPages.WebPageBase.<>c__DisplayClass40_0.<RenderPageCore>b__0(TextWriter writer) at System.Web.WebPages.WebPageBase.Write(HelperResult result) at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body) at System.Web.WebPages.WebPageBase.PopContext() at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.HttpApplication.CallHandlerExecutionStep.InvokeEndHandler(IAsyncResult ar) at System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)  

我真的不知道去哪里看/问题出在哪里

下面是一些代码:

(line 28)if (controller != "Home")
                            {
                                var defaultActionForController = ((List<DefaultActionForControllers>)ViewBag.DefaultActionsForControllers).Where(s => s.Controller == controller).Select(s => s.Action).FirstOrDefault();
                                if (controller == "ManagementObjects")
                                {
                                    var controllerName = firstLayerNameSet;
                                    @:> @Html.ActionLink(firstLayerNameSet, defaultActionForController, controller)
                                }
                                else if (controller == "MangementCategories")
                                {
                                    var controllerName = secondLayerNameSet;
                                    @:> @Html.ActionLink(secondLayerNameSet, defaultActionForController, controller)
                                }
                                else if (controller == "View")
                                {
                                    @:> @Html.ActionLink(Resources.ResourceManager.GetString(controller), "", "")
                                }
                                else
                                {
                                    @:> @Html.ActionLink(Resources.ResourceManager.GetString(controller), defaultActionForController, controller)
                                }
(line 50)                   }

调试上面的代码后,我看到defaultActionForController为null。将鼠标悬停在firstordefault()上后,我看到它说Exceptions: ArgumentNullException

ASP.NET-MVC 异常 事件 NullPointerException NullReferenceException

评论

0赞 Jurij B 2/18/2021
从这里开始: Shared_LoginPartial.cshtml:第 30 行,很高兴看到一些代码,否则很难帮助
0赞 Daniel 2/18/2021
@JurijB我添加了一些代码,它只是 if 语句。如果你愿意,我可以添加整个代码!
0赞 Daniel 2/18/2021
@JurijB我去本地站点调试了。它说 defaultActionForController 为 null。你知道为什么吗?
0赞 Machavity 2/23/2021
请不要通过破坏您的帖子为他人做更多工作。通过在 Stack Exchange 网络上发布,您已经根据 CC BY-SA 4.0 许可授予了 Stack Exchange 分发该内容的不可撤销权利(即无论您未来的选择如何)。根据 Stack Exchange 策略,帖子的未破坏版本是分发的版本。因此,任何破坏行为都将被恢复。如果您想了解更多关于删除帖子的信息,请参阅:删除工作原理?

答: 暂无答案