2016-11-10 155 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是你的問題解決? –

相關問題