Кто-нибудь еще имел эту проблему? Я должен делать что-то не так.
Итак, я настраиваю маршрут для таких ошибок:
routes.MapRoute
(
"SharedError",
"Shared/Error/{error}",
new { error = "" }
);
И звонит как:
return parentController.RedirectToRoute("SharedError", new RouteValueDictionary(new { error = errorMessage.ToString() }));
А на контроллере:
public ActionResult Error(String error)
Просто верно? Хорошо, когда это действительно выполняется, ошибка равна нулю, несмотря на то, что URL выглядит так:
/ Shared / Error / ThisIsTheError
Но параметр error в методе Error равен нулю. (И да, я пробовал другие слова)
Теперь, если я заменю все это словом "id", все будет работать.
Global.asax.cs
routes.MapRoute
(
"SharedError",
"Shared/Error/{id}",
new { id = "" }
);
Перенаправление:
return parentController.RedirectToRoute("SharedError", new RouteValueDictionary(new { id = errorMessage.ToString() }));
Общий контроллер:
public ActionResult Error(String id)
Является ли id обязательным словом для всех маршрутов, если маршрут по умолчанию принимает значение?