Url.RouteUrl返回null

时间:2009-08-14 16:57:46

标签: asp.net-mvc asp.net-mvc-routing

我正在为一条路线建立一个UrlHelper 如best practices

问题是返回的值始终为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});
}

我看不出我做错了什么

2 个答案:

答案 0 :(得分:17)

这似乎是因为您在注册路线时未指定{id}和{category}的默认值。

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

我认为您会发现,如果您更新路线条目以指定ID和类别的默认值,这将解决您的问题。或者,如果您确定总是提供id和类别的值,则可以不使用它。

就您的实际Url帮助方法Category()而言,如果您为id和category提供非null或空值,那么 应该正常工作。我完全复制了代码,它对我有用。

答案 1 :(得分:0)

出于某种原因,我还在运行mvc候选版本 我安装了mvc 1.0,现在工作正常