如何将json对象传递给asp.net mvc 4中的方法?
我想将一个JSON对象传递给asp.net mvc 4中的一个方法,但它总是返回null。如何将json对象传递给asp.net mvc 4中的方法?
我该怎么做?
试图
Asp.Net方法
[WebMethod]
public JsonResult doLoginApp(string model){
jsonResposta.Add("status", "1");
jsonResposta.Add("email", model);
return Json(jsonResposta);
}
JSON对象
{"User": {"email":"[email protected]", "password":"xxxxx"}};
返回
{
"status": "1",
"email": null
}
URL
http://localhost:14807/User/doLoginApp
编辑帖子
型号
public class UserJsonModel{
public long id { get; set; }
public String nome { get;set;}
public String email {get;set;}
public String senha {get;set;}
public int status { get; set; } //1 ativo, 2 inativo, 0 aguardando
public int tipo { get; set; } //1 painel, 2 aplicativos
public String imagem { get; set; }
public int loginBy { get; set; } //0 app, 1 facebook
public UserJsonModel() { }
}
Asp.NET方法
[WebMethod]
[HttpPost]
public JsonResult doLoginApp(UserJsonModel model){
jsonResposta.Add("status", "1");
jsonResposta.Add("email", model.email);
return Json(jsonResposta);
}
首先创建了一个模型,映射你的JSON对象,并在你的方法定义你将如何传递对象(例如从身体)
[WebMethod]
[HttpPost]
public JsonResult doLoginApp([FromBody] MyModel model){
jsonResposta.Add("status", "1");
jsonResposta.Add("email", model);
return Json(jsonResposta);
}
而且在Java中搜索如何制造的HttpRequest邮政和发送的数据在身体,它会工作。
我使用Model编辑了帖子,但电子邮件仍然返回null。有没有办法直接接收JSON对象,而不使用'[FromBody]'? – FernandoPaiva
这个问题不是在这个方法,但在你如何从Java应用程序调用它, http://stackoverflow.com/questions/32700391/send-post-requests-with-body-in-android –
@FernandoPaiva是你的问题解决? –
首先,你的JSON对象不只是一个字符串。您需要一个与您的JSON对象匹配的C#模型。 [http://json2csharp.com/](http://json2csharp.com/)将有助于确定该模型的外观。另外两件可能导致问题的事情是您的RouteConfig.cs以及提出请求的任何事情。你在使用AJAX吗? – Sam07
使用Ajax它可以工作,但是在这篇文章中我试图从Android应用程序发送Json对象。 – FernandoPaiva
好吧,我陷入困境,我对Java并不熟悉,所以我不会对此有太多帮助,但创建C#模型是一个很好的开始。由于它返回_something_,即使它不是你所期望的,这意味着路由正在找到你想要执行的方法。 – Sam07