我有一个典型的MVC应用程序,其中包含以下操作:
public ActionResult MyAction(string param1)
当我以这种方式调用此动作时:
http://domain/MyController/MyAction?param1=dasas
我收到了假设的param1:" dasas"
但是在MVC中,想法是将params传递给对象吗?
http://domain/MyController/MyAction/dasas
这种方式不起作用,我想知道为什么!有什么想法吗?
更新: 这是我的路线:
routes.MapRoute(name: "Default", url: "{controller}/{action}/{id}", defaults:
new {
controller = MVC.RegistrationAuthority.Name,
action = MVC.RegistrationAuthority.ActionNames.Landing,
id = UrlParameter.Optional
});
答案 0 :(得分:1)
您需要配置路由以了解传入的参数是param1
开箱即用的asp.net mvc只计算{id}
param
routes.MapRoute(null, "MyController/MyAction/{param1}", new { controller = "MyController", action = "MyAction"});
请务必在可能覆盖它的其他路线(即默认路线)之前添加此路线