控制器ActionResult中的Guid参数始终为null
本文关键字:null 参数 ActionResult 中的 Guid 控制器 | 更新日期: 2023-09-27 17:58:39
我有一个控制器,如下所示:
public async Task<IHttpActionResult> MyControllerMethod(string currency = null,
string edition = null,
int? systems = null,
string version = null,
Guid? entitlementid = null)
{
//Code here
}
当我从这个URL执行这个控制器时:
http://*:*/MyController/MyControllerMethod/?currency=eur&edition=DSSTANDARD&systems=50&version=6.3/
该方法的所有参数都具有如下值:
currency = eur
edition = DSSTANDARD
systems = 50
version = 6.3
但如果我也这样做,添加最后一个参数:
...&entitlementid=B5630B37-0820-4EB0-8A2A-000C44885590/
然后,前3个值具有来自URL的值,但entitlementid
始终是null
。问题出在哪里?
路线配置
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
在查询字符串的末尾包含一个额外的斜线/
...&entitlementid=B5630B37-0820-4EB0-8A2A-000C44885590/
这导致CCD_ 4绑定变得无效。如果删除斜杠并发出请求,则会填充entitlementid
。
http://*:*/MyController/MyControllerMethod/?currency=eur&edition=DSSTANDARD&systems=50&version=6.3&entitlementid=B5630B37-0820-4EB0-8A2A-000C44885590
应按预期工作。