Asp.net mvc 4 路由配置MVC
我有一个关于MVC路由的问题。鉴于路线:Asp.net mvc 4 路由配置MVC,asp.net-mvc-4,routes,Asp.net Mvc 4,Routes,我有一个关于MVC路由的问题。鉴于路线: routes.MapRoute( name: "Venda", url: "{controller}/{action}/{automovelId}/{consumidorId}/{revendedoraId}", defaults: new { controller = "Venda", action = "Index", automovelId = UrlParameter.Opt
routes.MapRoute(
name: "Venda",
url: "{controller}/{action}/{automovelId}/{consumidorId}/{revendedoraId}",
defaults: new {
controller = "Venda",
action = "Index",
automovelId = UrlParameter.Optional,
consumidorId = UrlParameter.Optional,
revendedoraId = UrlParameter.Optional
}
);
我希望能够像这样调用编辑操作:
/Venda/Edit/1/1/1
/Venda/Edit?automovelId=1&consumidorId=1&revendedoraId=1
但它只有在这样调用时才起作用:
/Venda/Edit/1/1/1
/Venda/Edit?automovelId=1&consumidorId=1&revendedoraId=1
如何执行此操作?您不能在一条管线中使用多个可选参数。只有最后一个参数可以是可选的。Stephen Muecke,我必须删除最后两个可选参数?@Yuri,这将为您提供更多关于可能的解决方法的信息。我几分钟前在这个博客上看到过。但我还是有问题。这三个参数是我的主键。@Yuri,只需从前两个参数中删除
UrlParameter.Optional
,然后确保在调用操作时传递这些参数method@Yuri,这里是一个示例routes.MapRoute(名称:“EmployeeTimeSheet”,url:“Report/TimeSheet/{id}/{date}”,默认值:new{controller=“Report”,action=“TimeSheet”}
和操作方法`public ActionResult TimeSheet(int?id,DateTime?date)`