路由变量作为动作变量接收?

时间:2018-09-20 17:59:31

标签: c# .net asp.net-mvc asp.net-mvc-5.2

我有以下路由配置:

routes.MapRoute(
    name: "Default",
    url: "{project}/{version}/{controller}/{action}",
    defaults: new { controller = "Portal", action = "Index" }
);

这个想法是在URL之前有两个自定义参数,因此我创建的动作过滤器可以做一些有用的事情。到目前为止,效果很好,但这就是问题所在。

这是一个名为version的动作方法

public ActionResult SomeMethod(string version)
{
    //Some logic has been performed using the custom route variable values before getting in here.... 
}

如果我打以下电话:http:/server/RouteValue1/RouteValue2/MyController/SomeMethod?version=1

version的{​​{1}}参数的值为SomeMethod

有什么办法告诉框架不要这样做吗?是否将路线变量与动作变量分开?

1 个答案:

答案 0 :(得分:0)

否,您不能在路由配置和查询字符串中使用相同的参数名称。您需要重命名一个,即:

http:/server/RouteValue1/RouteValue2/MyController/SomeMethod?ver=1