在过去一个月左右的时间里,我一直在开发一个大型 MVC 应用程序,但这是我第一次需要定义自定义路由处理程序,并且遇到了一些问题。基本上我有两个参数要传递。第一个是必需的,第二个是可选的。
我在这里关注这个答案。
这是我的自定义路线:
routes.MapRoute(
"MyRoute",
"{controller}/{action}/{param1}/{param2}",
new {
controller = "MyController",
action = "MyAction",
param1 = "",
param2 = "" // I have also tried "UrlParameter.Optional" here.
}
);
还有我的动作方法签名:
public ActionResult MyAction(string param1, string param2)
如果我尝试使用 URL http://[myserver]/MyController/MyAction/Test1/Test2
,那么它会像我期望的那样工作,param1 = "Test1" 和 param2 = "Test2"
如果我尝试 URL http://[myserver]/MyController/MyAction/Test1
,那么两个参数都为空。
希望有人能告诉我我在这里做错了什么,因为我迷路了。