Asp.net MVC3 UrlHelper.Action() 抛出 NullReferenceException
问题
我目前正在为 ASP.net MVC 3 构建一个帮助程序,并且在考虑 UrlHelper.Action() 方法时遇到了问题。除了第一个请求(应用程序启动后)之外的每个请求,以下代码都会引发 NullReferenceException。
var src = htmlHelper.Url().Action("Css", "Asset", options);
相关堆栈
System.Web.HttpServerVarsCollection.Get(String name) +8740566
System.Web.Mvc.UrlRewriterHelper.WasThisRequestRewritten(HttpContextBase httpContext) +42
System.Web.Mvc.UrlRewriterHelper.WasRequestRewritten(HttpContextBase httpContext) +23
System.Web.Mvc.PathHelpers.GenerateClientUrlInternal(HttpContextBase httpContext, String contentPath) +163
System.Web.Mvc.PathHelpers.GenerateClientUrl(HttpContextBase httpContext, String contentPath) +63
System.Web.Mvc.UrlHelper.GenerateUrl(String routeName, String actionName, String controllerName, RouteValueDictionary routeValues, RouteCollection routeCollection, RequestContext requestContext, Boolean includeImplicitMvcValues) +150
System.Web.Mvc.UrlHelper.Action(String actionName, String controllerName, Object routeValues) +55
可能的原因
我使用一个名为 AttributeRouting 的库,我通过 nuget 安装该库,并认为这可能会导致问题,但删除引用没有效果。
因为它确实可以在第一个请求中工作,但此后的每个请求都会失败,我感觉它与在应用程序启动时运行但应在请求启动时运行的代码有关,或者某些变量/对象不会在请求中保留。
额外信息
htmlHelper.Url() 是以下扩展方法。
public static UrlHelper Url(this HtmlHelper helper)
{
return new UrlHelper(helper.ViewContext.RequestContext);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
var src = htmlHelper.Url().Action("Css", "Asset", options);
您在视图或控制器之一中使用它吗?无论哪种方式,两者都应该定义自己的 Url 对象(我在这里假设您使用的 htmlHelper 对象是您自己创建的)。
或者在您看来:
或者更好的是,只需
var src = htmlHelper.Url().Action("Css", "Asset", options);
Do you use that in a view or in one of your controllers?Either way, both should have their own Url object defined (I made the assumption here that the htmlHelper object you use is one you created yourself).
or in your view:
or better yet, just
<link rel="Stylesheet" href="@Url.Action("Css","Asset",options)" />
你解决过这个问题吗?我最近在安装 IIS 7 Url Rewrite Module v.2.0 时看到了此错误。卸载后问题就消失了。
Did you ever resolve this? I recently saw this error when I installed the IIS 7 Url Rewrite Module v.2.0. After uninstalling it the issue went away.