Url.RouteUrl返回null

fre*_*doo 10 asp.net-mvc asp.net-mvc-routing

我在最佳实践中为一条路线建立了一个UrlHelper

问题是在调试中找到的时候返回的值总是为null

Url.RouteUrl("x")返回null

Url.RouteCollection ["X"]返回路线

我正在尝试:

public static string Category(this UrlHelper helper, int Id, string category)
{
     return helper.RouteUrl("X", new {id = Id, category= category});
}
Run Code Online (Sandbox Code Playgroud)

我看不出我做错了什么

Kur*_*ler 17

这似乎是由于您在注册路由时未指定{id}和{category}的默认值而导致的.

Url.RouteUrl("x") 将返回null,因为提供的id和类别没有值,并且您的路由定义没有默认值.

我认为如果你更新你的路由条目以指定id和类别的默认值,你会发现这将解决你的问题.或者,如果您确定始终为id和category提供值,则可以不使用它.

至于你的实际Url辅助方法Category(),如果你为id和category提供一个非null或空值,它应该正常工作.我真的复制了代码,它对我有用.

  • 我已设置所有默认值,但我仍然遇到此问题. (2认同)