【发布时间】:2011-04-04 17:54:04
【问题描述】:
在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);
}
当我输入 url .../survey/1/AddQuestions 时,找不到资源。当我运行路由调试器时,路由显示为有效。
这在 MVC3 中是否可行?我知道在 Restful WCF 中,您可以像这样构造路由没问题。总体而言,我可能会使用 {controller}/{action}/{id},但我相信只有在必要时才使用动词,在我的情况下,应该按照我上面的示例构建正确的 url。
有什么想法吗?谢谢。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing