2013-10-07 41 views
1

我嘗試了從我的觀點,如下所示(使用jQuery)ajax後。總是在控制器中獲得空值在後AJAX後

完整的解決方案Here.

$(document).ready(function() { 
       var kk = { 
        Address1: "423 Judy Road", 
        Address2: "1001", 
        City: "New York", 
        State: "NY", 
        ZipCode: "10301", 
        Country: "USA" 
       }; 
       console.log(JSON.stringify(kk)); 
       $.ajax({ 
        url: 'Check', 
        type: 'POST', 
        data: JSON.stringify(kk), 
        dataType:"json", 
        contentType: 'application/json; charset=utf-8', 
        success: function (data) { 
         alert(data.success); 
        }, 
        error: function() { 
         alert("error"); 
        } 
       }); 
      }); 

而且收到了一個控制器(總是調用的方法)

public ActionResult Check(AddressInfo addressInfo) 
     { 
      return Json(new { success = true }); 
     } 

型號here, 但是當我試圖訪問(斷點檢查)的屬性的對象(AddressInfo)它總是顯示null的值。我嘗試了沒有串化和串化。我現在正在學習MVC和初學者。請幫助

回答

1

這是不工作的原因是因爲你使用ASP.NET MVC 2和模型從JSON綁定支持未添加到ASP.NET MVC 3

您可以添加功能ASP.NET MVC 2雖然。 Phil Haack有一篇文章描述說明,並在末尾附有示例代碼的鏈接:http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx

+0

非常感謝... –

+0

我可以使用JSON.stringify(person)而不是$ .toJSON(person)。 –

+0

是的,他們在支持JSON.stringify的瀏覽器中做同樣的事情。在舊的瀏覽器(基本上是IE8之前),你需要包含json2.js才能使用它。 –

0

嘗試在查詢字符串的方式這樣來傳遞數據:

$(document).ready(function() { 
     var data = "Address1=423 Judy Road&Address2=1001&City=New York&State=NY&ZipCode=10301&Country=USA"; 

     $.ajax({ 
      url: 'Check', 
      type: 'POST', 
      data: data, 
      contentType: 'application/json; charset=utf-8', 
      success: function (data) { 
       alert(data.success); 
      }, 
      error: function() { 
       alert("error"); 
      } 
     }); 
    }); 
+0

我想僅傳遞JSON數據。這就是大多數Ajax帖子的工作原理。 –

+0

好的,所以不要傳遞JSON字符串,而是傳遞JSON對象。 – Flea777

+0

還是它的空值進入控制器 –

0

添加dataTypejsonAjaxdata parameter喜歡通過addressInfo

$.ajax({ 
    url: 'Check', 
    type: 'POST', 
    datatype:'json', 
    data: {addressInfo:kk}, 
    success:function(data){ 
    .... 
    .... 
}); 
+0

但仍然變爲空 –

+0

我想將數據串聯起來嗎? –

+0

不,沒有必要,但在'console'中檢查你的'ajax url'是否在'server'上或者沒有? –

1

試試下面的代碼:

return this.Json(new { success = true }, JsonRequestBehavior.AllowGet); 

如果這不起作用,請將請求參數從AddressInfo更改爲控制器端的字符串。 這絕對會工作!

+0

omg它可以幫助很多謝謝 – Neel

+0

感謝buddy !!。我很高興我可以幫忙 – Sanket

+0

srsly mind blow答案我正在尋找它的最後幾天,你給了靈魂感謝alottttttt – Neel