在global.asax.cs中注册路由时,如何更改url参数的顺序?
我注册了这样的路线:(注意:我也注册了默认的MVC3路线)
routes.MapRoute(
"SurveyWizard",
"survey/{id}/{action}",
new { id = UrlParameter.Optional, action = "AddQuestions" });
我的控制器:
public ActionResult AddQuestions(int id)
{
if(id < 1 || id == null)
//Redirect somewhere
var survey = _surveyService.GetSurveyById(id);
//other controller logic
return View(survey);
}
当我输入网址... / survey / 1 / AddQuestions时,无法找到资源。当我运行路由调试器时,路由显示为有效。
这在MVC3中甚至可能吗?我知道在Restful WCF中,你可以构建这样的路由没问题。在我可以使用{controller} / {action} / {id}的宏观计划中,但我相信只在必要时使用动词,在我的情况下,正确的url应按照上面的示例进行构建。
有什么想法吗?感谢。
答案 0 :(得分:3)
您的路线缺少默认控制器,例如:
routes.MapRoute(
"SurveyWizard",
"survey/{id}/{action}",
new { controller="Survey", action="AddQuestions" });
你应该注意的另一点是默认的死记硬背应该是最后一个......