我已经在我的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) { ... }
我使用以下网址呼叫操作:http://localhost:51650/Home/SendToken/platform/token/uid
答案 0 :(得分: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"