Как изменить порядок маршрутов. Карта в MVC3?
Как изменить порядок параметра url при регистрации маршрутов в global.asax.cs?
Я зарегистрировал маршрут следующим образом: (Примечание: у меня также зарегистрирован маршрут по умолчанию 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 должен быть структурирован в соответствии с моим примером выше.
Есть идеи? Благодарю.
1 ответ
В вашем маршруте отсутствует контроллер по умолчанию, например:
routes.MapRoute(
"SurveyWizard",
"survey/{id}/{action}",
new { controller="Survey", action="AddQuestions" });
Еще один момент, о котором вы должны знать, это то, что по умолчанию должен быть последний...