如何使用 MVC Web Api GET 将对象作为参数传递
How to pass an object as a parameter with MVC Web Api GET
在 MVC 中,当我 post 时,我可以将一个 json 对象传递给我的 MVC 控制器。我猜,在幕后,MVC 通过 属性 名称映射 属性 值。
我正在尝试使用 get。
这适用于 POST
URL
"/api/myapi/?request=" + JSON.stringify(myJsonObj
API定义为
[HttpPost]
public MyResponse Comparison(MyRequest request)
现在,我想把它改成GET
URL
"/api/myapi/?request=" + JSON.stringify(myJsonObj
API定义为
[HttpGet]
public MyResponse Comparison(MyRequest request)
如果我更新到
[HttpGet]
public MyResponse Comparison([FromQuery] MyRequest request)
然后到达终点,但是request
中的每个属性都是null
原因是,在 XY 的情况下,虽然我可以在我的控制器上使用查询字符串和多个输入参数来实现这一点,但这意味着我必须为每个点手动创建 MyRequest
对象 -我很懒,我想使用 MVC 序列化的自动功能,所以我不需要在每个端点都进行序列化。
将复杂对象传递到 GET 端 point/controller 的修复方法是
在Javascript内,我通过的URL是
/api/myapi/?para1=1¶2=hello¶3=2021-09-09"
终点是
[HttpGet]
public MyResponse Comparison([FromQuery] MyRequest request)
而MyRequest
的定义是
public class MyRequest
{
public int para1 {get;set;}
public string para2 {get;set;}
public string para3 {get;set;}
}
在 MVC 中,当我 post 时,我可以将一个 json 对象传递给我的 MVC 控制器。我猜,在幕后,MVC 通过 属性 名称映射 属性 值。
我正在尝试使用 get。
这适用于 POST
URL
"/api/myapi/?request=" + JSON.stringify(myJsonObj
API定义为
[HttpPost]
public MyResponse Comparison(MyRequest request)
现在,我想把它改成GET
URL
"/api/myapi/?request=" + JSON.stringify(myJsonObj
API定义为
[HttpGet]
public MyResponse Comparison(MyRequest request)
如果我更新到
[HttpGet]
public MyResponse Comparison([FromQuery] MyRequest request)
然后到达终点,但是request
中的每个属性都是null
原因是,在 XY 的情况下,虽然我可以在我的控制器上使用查询字符串和多个输入参数来实现这一点,但这意味着我必须为每个点手动创建 MyRequest
对象 -我很懒,我想使用 MVC 序列化的自动功能,所以我不需要在每个端点都进行序列化。
将复杂对象传递到 GET 端 point/controller 的修复方法是
在Javascript内,我通过的URL是
/api/myapi/?para1=1¶2=hello¶3=2021-09-09"
终点是
[HttpGet]
public MyResponse Comparison([FromQuery] MyRequest request)
而MyRequest
的定义是
public class MyRequest
{
public int para1 {get;set;}
public string para2 {get;set;}
public string para3 {get;set;}
}