C# 控制器ActionResult中的Guid参数始终为空
我有一个控制器,如下所示:C# 控制器ActionResult中的Guid参数始终为空,c#,asp.net-mvc,asp.net-web-api,controller,C#,Asp.net Mvc,Asp.net Web Api,Controller,我有一个控制器,如下所示: public async Task<IHttpActionResult> MyControllerMethod(string currency = null, string edition = null, int? sy
public async Task<IHttpActionResult> MyControllerMethod(string currency = null,
string edition = null,
int? systems = null,
string version = null,
Guid? entitlementid = null)
{
//Code here
}
currency = eur
edition = DSSTANDARD
systems = 50
version = 6.3
该方法的所有参数的值如下所示:
public async Task<IHttpActionResult> MyControllerMethod(string currency = null,
string edition = null,
int? systems = null,
string version = null,
Guid? entitlementid = null)
{
//Code here
}
currency = eur
edition = DSSTANDARD
systems = 50
version = 6.3
但是,如果我添加最后一个参数也这样做:
...&entitlementid=B5630B37-0820-4EB0-8A2A-000C44885590/
然后,前3个值具有URL中的值,但authoritmentId
始终为null
。
问题是什么
路由配置
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
在查询字符串的末尾包含一个额外的斜杠
/
…&权利ID=B5630B37-0820-4EB0-8A2A-000C44885590/
这导致Guid
绑定无效。如果删除斜杠并发出请求,则将填充权利ID
http://*:*/MyController/MyControllerMethod/?currency=eur&edition=DSSTANDARD&systems=50&version=6.3&requenticationId=B5630B37-0820-4EB0-8A2A-000C44885590
应该可以正常工作。@KartikeyaKhosla我没有这个看起来像WebAPI调用的功能。能否显示路由配置。@Nkosi config.Routes.maphttprote(名称:“DefaultApi”,路由模板:“{controller}/{action}/{id}”,默认值:new{id=RouteParameter.Optional});如果尝试将
权利ID
更改为字符串,它是否仍然为空?