我有以下控制器操作:
public class Foo
{
public ActionResult Bar(int? barId)
{
...
}
}
此操作的相应路线由:
给出routes.MapRoute("Foobar", "bar/{barId}",
new { controller = "Foo", action = "Bar", barId = UrlParameter.Optional },
new { barId = @"^[0-9]+$" });
在我看来,我正在生成路线:
@Url.Action("Bar", "Foo", new { barId = bar.BarId })
对于bar.BarId = 32
,我收到预期的/Foo/32
但我还希望为null
值生成路由:
@Url.Action("Bar", "Foo", new { barId = (int?)null })
除此之外,我收到了/Foo?barId=currentBarId
其中currentBarId
是我正在查看的barId
页面的Bar
。
我做错了什么?
答案 0 :(得分:1)
更改约束:
new { barId = @"^[0-9]*$" }
这将允许此路线为空barId
。