特定控制器的两个可选参数的路由

Route for two optional parameter for a specific controller

在一个特定的控制器中,我有接受两个参数的动作。有些操作是 get,有些是 post

[HttpGet]
public ActionResult CodeRead([DataSourceRequest] DataSourceRequest request, string group, string system)

[HttpPost]
public ActionResult CodeCreate([DataSourceRequest] DataSourceRequest request, ZCodes code, string group, string system)

查询字符串类似于:

http://localhost:3086/xxx/CodeRead/01/00

我已经定义了以下路由,但我总是得到一个空 groupsystemrequest 没问题。

    routes.MapRoute("Parameters", "xxx/{action}/{group}/{system}",
        new { controller = "xxx", action = "CodeRead", group = UrlParameter.Optional, system = UrlParameter.Optional });

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

我也交换了路由位置,但是没有用!

将参数置于默认值之上

routes.MapRoute("Parameters", "xxx/{action}/{group}/{system}",
        new { controller = "xxx", action = "CodeRead", group = UrlParameter.Optional, system = UrlParameter.Optional });
}   

routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

。路线很好,模型包含一个名称为 group 的字段,我只需要将该参数重命名为其他名称即可。

[HttpGet]
public ActionResult CodeRead([DataSourceRequest] DataSourceRequest request, string somethingElse, string system)

[HttpPost]
public ActionResult CodeCreate([DataSourceRequest] DataSourceRequest request, ZCodes model, string somethingElse, string system)