特定控制器的两个可选参数的路由
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
我已经定义了以下路由,但我总是得到一个空 group
。 system
和 request
没问题。
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)
在一个特定的控制器中,我有接受两个参数的动作。有些操作是 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
我已经定义了以下路由,但我总是得到一个空 group
。 system
和 request
没问题。
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)