2016-11-10 137 views
0

我想将一个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); 
    } 
+0

首先,你的JSON对象不只是一个字符串。您需要一个与您的JSON对象匹配的C#模型。 [http://json2csharp.com/](http://json2csharp.com/)将有助于确定该模型的外观。另外两件可能导致问题的事情是您的RouteConfig.cs以及提出请求的任何事情。你在使用AJAX吗? – Sam07

+0

使用Ajax它可以工作,但是在这篇文章中我试图从Android应用程序发送Json对象。 – FernandoPaiva

+0

好吧,我陷入困境,我对Java并不熟悉,所以我不会对此有太多帮助,但创建C#模型是一个很好的开始。由于它返回_something_,即使它不是你所期望的,这意味着路由正在找到你想要执行的方法。 – Sam07

回答

2

首先创建了一个模型,映射你的JSON对象,并在你的方法定义你将如何传递对象(例如从身体)

[WebMethod] 
[HttpPost] 
public JsonResult doLoginApp([FromBody] MyModel model){      
    jsonResposta.Add("status", "1"); 
    jsonResposta.Add("email", model); 
    return Json(jsonResposta); 
} 

而且在Java中搜索如何制造的HttpRequest邮政和发送的数据在身体,它会工作。

+0

我使用Model编辑了帖子,但电子邮件仍然返回null。有没有办法直接接收JSON对象,而不使用'[FromBody]'? – FernandoPaiva

+0

这个问题不是在这个方法,但在你如何从Java应用程序调用它, http://stackoverflow.com/questions/32700391/send-post-requests-with-body-in-android –

+1

@FernandoPaiva是你的问题解决? –

相关问题