Asp.net 具有可空参数的MVC动作方法
我正在使用参数值调用一个操作。但它并没有将参数值指定给动作方法参数Asp.net 具有可空参数的MVC动作方法,asp.net,asp.net-mvc,asp.net-mvc-3,razor,routing,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,Routing,我正在使用参数值调用一个操作。但它并没有将参数值指定给动作方法参数 public ActionResult UserDetail(long? userId) { } localhost/Admin/UserDetail/10->10未传递给userId 但是 localhost/Admin/UserDetail/?userId=10->此操作有效 什么原因导致第一个url不工作?有什么帮助吗 更新: 在global.asax中尝试了此操作,但仍不起作用 routes
public ActionResult UserDetail(long? userId)
{
}
localhost/Admin/UserDetail/10->10未传递给userId
但是
localhost/Admin/UserDetail/?userId=10->此操作有效
什么原因导致第一个url不工作?有什么帮助吗
更新:
在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
}
);
将参数名更改为“id”而不是“userid”,然后重试……这样就可以了
public ActionResult UserDetail(long? id)
{
}
将参数名更改为“id”而不是“userid”,然后重试……这样就可以了
public ActionResult UserDetail(long? id)
{
}
将此用户id替换为id:-
public ActionResult UserDetail(long? id)
{
}
将此用户id替换为id:-
public ActionResult UserDetail(long? id)
{
}
默认情况下,mvc路由包含一个名为id的路由参数。添加路由以包含userId或仅使用id。@DaveA,您能否给出添加接受userId的新路由的答案?我在global.asax上试过,但不确定我犯了什么错误there@Billa请考虑绿色检查这个答案,如果它为您的目的默认服务,MVC路由容纳1个路径PARAM称为ID。添加路线包括USER ID或只是使用ID。@ DaveA,你能给出一个答案,添加一个新的路线接受USER ID?我在global.asax上试过,但不确定我犯了什么错误there@Billa请考虑绿色检查这个答案如果它服务你的意图认为你需要小写id@Billa请考虑绿色检查这个答案,如果它为您的目的。我认为您需要小写。id@Billa请考虑绿色检查这个答案,如果它为您服务我想你需要小写字母我想你需要小写字母