C# 如何在WEB API中获取WWWForm
在我的WebApi中,我有以下POST方法:C# 如何在WEB API中获取WWWForm,c#,rest,asp.net-web-api,C#,Rest,Asp.net Web Api,在我的WebApi中,我有以下POST方法: [HttpPost] [EnableCors(origins: "*", headers: "*", methods: "*")] [Route("api/user/save")] public void Save([FromBody]string userinfo) { using (var context = new CarWarsEntities()) {
[HttpPost]
[EnableCors(origins: "*", headers: "*", methods: "*")]
[Route("api/user/save")]
public void Save([FromBody]string userinfo)
{
using (var context = new CarWarsEntities())
{
var a = "";
}
}
在我的Unity项目中,我用以下代码称之为:
var url = "http://localhost:61506/api/user/save";
var form = new WWWForm();
form.AddField("EXP", GameControl.control.EXP);
form.AddField("Health", GameControl.control.Health);
form.AddField("Silver", GameControl.control.Silver);
form.AddField("Gold", GameControl.control.Gold);
form.AddField("Ammo", GameControl.control.Ammo);
form.AddField("Nitro", GameControl.control.Nitro);
var www = new WWW(url, form);
调用成功,但userInfo字符串始终为空。如何在WebApi中获取WWWForm字段
这是fiddler的网络表单:
我想你做这样的事情可能会更走运:
public class UserInfo
{
public int EXP {get; set}
public int Health {get; set}
public int Silver {get; set}
public int Gold {get; set}
public int Ammo {get; set}
public int Nitro {get; set}
}
然后在控制器中稍微更改代码:
[HttpPost]
[EnableCors(origins: "*", headers: "*", methods: "*")]
[Route("api/user/save")]
public void Save([FromBody]UserInfo userinfo)
{
using (var context = new CarWarsEntities())
{
var a = "";
}
}
这样,WebApi将为您直接将表单映射到对象。我怀疑它现在正试图为你做什么,但它不能做到
如果这不适用于您,请查看Fiddler中的raw选项卡以查看正在发送的JSON。它应该与UserInfo对象匹配
希望能有所帮助。谢谢你的回答。你是对的,但我必须编写json数据,不能使用WWWForm。我从这条线索中得到了提示: