ASP.NET MVC: все значения контроллера передаются пустыми
Я добавил новое действие в мое приложение asp.net mvc и добавил для него специальное правило RouteConfig.cs
,
Но все параметры передаются как null
,
Вот мое правило маршрута:
routes.MapRoute(
"toekn_submit_route",
"{controller}/SendToken/{platform}/{token}/{uid}",
new { controller = "Home", action = "SendToken" }
, new[] { "MvcApplication.Controllers" }
);
А вот действие замедления:
public JsonResult SendToken(string platform, string token, string uid) { ... }
Я называю действие, используя этот URL: http://localhost:51650/Home/SendToken/platform/token/uid
1 ответ
Решение
Порядок добавления маршрутов важен. Первый подобранный маршрут побеждает.
Убедитесь, что этот добавленный маршрут добавлен перед более общими маршрутами, иначе они будут сопоставлены с другим маршрутом, который не заполняет заполнители должным образом.
routes.MapRoute(
name: "token_submit_route",
url: "{controller}/SendToken/{platform}/{token}/{uid}",
defaults: new { controller = "Home", action = "SendToken" },
namespaces: new[] { "MvcApplication.Controllers" }
);
//...other more general routes.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Например, если Default
маршрут был помещен перед токеном http://localhost:51650/Home/SendToken/platform/token/uid
где
controller = "Home",
action = "SendToken",
id = "platform/token/uid"