2013-03-01 75 views
3

我正在測試日曆應用程序上的推送通知。當我在日曆應用程序上創建事件時,我的網站用JSON字符串獲取HttpPost請求。我編寫了這樣的代碼,但無法在我的操作方法中收到JSON字符串。在asp.net MVC中的HttpPost 4

 [HttpPost] 
     public ActionResult Push(String jsonReq) 
     { 
     Console.write(jsonReq); 
     return View(); 
     } 

當我使用與JSON相同的結構創建模型時,我可以收到請求。它似乎與JSON結構緊密結合?我正在使用ASP.Net MVC 4

 [HttpPost] 
    public ActionResult Push(JSONModel jsonModel) 
    { 

     return View(); 
    } 
+1

請添加您的ajax請致電 – 2013-03-01 08:42:17

+2

您的問題是什麼?正確的方法是使用模型。 – 2013-03-01 08:44:16

+0

@DarinDimitrov,我的問題:如果我不知道結構怎麼辦?那麼我無法創建一個模型嗎?謝謝。 – dotnetrocks 2013-03-01 08:51:02

回答

4

ASP.NET MVC模型綁定的工作原理如下 - 它解析請求,嘗試在其參數和Action參數之間找到相應的名稱 - 名稱,如果找到,則實例化後者。您沒有發送名稱爲jsonReq的參數,因此您無法在您的操作方法中收到某些內容。

如果你真的想要,沒有讓ASP.NET MVC解析它爲您的使用計劃JSON字符串的工作,你有兩個選擇:

  1. 通過HttpContext.Request訪問它的作用
  2. 編寫自定義的模型綁定內將請求主體映射到jsonReq參數
1

請求將不會有一個名爲jsonReq值,所以不知道該映射JSON到動作參數。

由於您的JSONModel將具有與進入請求的JSON命名值相匹配的屬性名稱,因此我們填充了該對象。