11

作为最佳实践,我正在为路线构建 UrlHelper

问题是在调试时发现返回值始终为空

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});
}

我看不到我做错了什么

4

2 回答 2

17

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

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

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

就您实际的 Url 帮助器方法 Category() 而言,如果您为 id 和 category 提供非空值或空值,它应该可以正常工作。我从字面上复制了代码,它对我有用。

于 2009-08-14T17:58:53.063 回答
0

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

于 2009-08-16T10:15:32.870 回答