【发布时间】:2013-03-13 02:22:45
【问题描述】:
我正在使用参数值调用一个动作。但它没有将参数值分配给动作方法参数。
public ActionResult UserDetail(long? userId)
{
}
localhost/Admin/UserDetail/10 --> 10 没有传递给 userId
但是
localhost/Admin/UserDetail/?userId=10 --> 这可行
是什么导致第一个网址不起作用?有什么帮助吗?
更新:
在 global.asax 中试过了,还是不行
routes.MapRoute("ExistSiteUser",
"UserDetail/{userId}",
new
{
controller = "Admin",
action = "UserDetail",
// nothing optional
}
);
routes.MapRoute("NewSiteUser",
"UserDetail",
new
{
controller = "Admin",
action = "UserDetail",
userId = UrlParameter.Optional
}
);
【问题讨论】:
-
默认情况下,mvc 路由包含 1 个称为 id 的路由参数。添加路由以包含 userId 或仅使用 id。
-
@DaveA,您能否给出添加接受
userId的新路由的答案?我在 global.asax 中尝试过,但不确定我在那里犯了什么错误 -
@Billa 如果它符合您的目的,请考虑绿色检查此答案
标签: asp.net asp.net-mvc asp.net-mvc-3 razor routing