在服务器
上,selectedLocation始终为null我正在使用Angular,将对象传递给get方法的正确方法是什么
这是在Server上定义的Class,它在get request
中作为参数传递public class Location
{
public string LocationName { get; set; }
public string MFGName { get; set; }
}
这是正在调用的WebAPI中的方法。
[HttpGet]
[ActionName("RenewToken")]
[AllowAnonymous]
[ResponseType(typeof(string))]
public async Task<IHttpActionResult> RenewToken(Location selectedlocation)
{
}
捕获的请求看起来像这样(在Google Chrome开发人员工具中)
http://localhost:58146/api/Account/RenewToken?selectedlocation=%7B%22LocationName%22:%22Guad%22,%22MFGName%22:%22Flex%22%7D
我做错了什么?
答案 0 :(得分:1)
好的,我从这里得到的
Why do we have to specify FromBody and FromUri in ASP.NET Web-API?
当方法的参数是复杂类型时,在请求的主体中查找
因为您正在使用GET,所以数据会被放入uri而不是正文
你可以做的几个选择
public async Task<IHttpActionResult> RenewToken(string LocationName, string MFGName)
{
}
您可以随时将动词更改为帖子或接受身体数据的内容
你可以尝试将你的角色改为
$http({
method: "GET",
url: "/api/Account/RenewToken",
params: {
LocationName: "Guad",
MFGName: "Flex"
}
})
将参数化数据