Asp.net HtmlHelper在Error.aspx母版页中为空
我的ASP.NET MVC应用程序中有一个自定义的Error.aspx页面。错误页面使用母版页(母版页反过来使用另一个母版页),母版页中有一个对HtmlHelper的调用:Asp.net HtmlHelper在Error.aspx母版页中为空,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我的ASP.NET MVC应用程序中有一个自定义的Error.aspx页面。错误页面使用母版页(母版页反过来使用另一个母版页),母版页中有一个对HtmlHelper的调用: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Unsecure.Master" ... %> ... Html.RenderPartial("LogOnUserControl") ... Html.RenderPartial(“LogOnUserC
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Unsecure.Master" ... %>
...
Html.RenderPartial("LogOnUserControl")
...
Html.RenderPartial(“LogOnUserControl”)
My web.config设置为对所有错误使用此错误页:
<customErrors mode="RemoteOnly" defaultRedirect="/Views/Shared/Error.aspx" />
问题在于ViewMasterPage的Html属性为空。我的理解是,这个属性只是从ViewPage的Html属性中提取出来的,该属性也是空的。因此,对HtmlHelper调用分部方法的任何尝试都会失败,并出现NullReferenceException
为什么HtmlHelper为空?您的母版页指令如下所示:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
如果没有Inherits属性,则Html.*不存在。此外,defaultRedirect应该与路由一起工作,而不是直接指向视图文件。马克,这是我要走的一条路。我猜是MVC框架在页面的HtmlHelper上设置的,因此不通过控制器而是直接点击ASPX就可以绕过该步骤。然而,与此同时,一位同事简单地将我们的ASPX页面设置为“dumber”(在我看来,这对于一个全面错误页面是一件好事)。而且,FWIW,我的母版页确实继承了ViewMasterPage。问题解决了吗?我也面临同样的问题:(遗憾的是,我不记得了。那是很久以前的事了,我不再从事那个项目了。我是一个糟糕的贡献者:-(