2014-09-02 50 views
1

我有一個js功能:行動收到一個空字符串後,阿賈克斯後

的Javascript:

function Post() 
{ 
    var table = $('#table4').dataTable(); 
    var data = table.$('input:text').serialize(); 
    console.log(data); 

    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SaveList")', 
     data: JSON.stringify(data), 
     dataType: "json", 
     contentType: 'application/json', 
     success: function() { 
      alert('success'); 
     }, 
     error: function() { 
      alert('error'); 
     } 

    }); 
} 

操作:

[HttpPost] 
    public ActionResult SaveList(string serializedString) 
    { 
     var a = serializedString; 
     return RedirectToAction("CustomersList"); 
    } 

的問題是行動收到空蜇console.log(data)顯示,有內容,如果我把斷點在控制器上停止,但serializedString爲空。哪裏可能是一個問題?謝謝!

+0

嘗試'數據類型:'text''和刪除'contentType'。 – 2014-09-02 10:00:21

+0

@FlorianGl - 說'dataType:「文本」'不會幫助。問題是讀取服務器上的數據,而不是處理響應。 – Quentin 2014-09-02 10:41:10

+0

@FlorianGl - 刪除contentType將會很愚蠢。 'data'包含JSON。如果你刪除了'contentType',那麼你需要重新格式化數據,這樣它就形成了編碼數據而不是JSON編碼數據。 – Quentin 2014-09-02 10:41:48

回答

1

取下AJAX功能 「數據類型: 」兩個聲明JSON「 和的contentType: '應用/ JSON的',」 試試這個

function Post() 
{ 
    var table = $('#table4').dataTable(); 
    var data = table.$('input:text').serialize(); 
    console.log(data); 

    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SaveList")', 
     data: JSON.stringify(data), 

     success: function() { 
      alert('success'); 
     }, 
     error: function() { 
      alert('error'); 
     } 

    }); 
} 
+0

我不是故意投票下來,我似乎無法改變它...很抱歉,我會再試一次 – zzipper72 2015-09-14 15:56:27

0

謝謝你們,我解決的問題。這是我現在的代碼,也許以後我會改變它。

的Javascript:

function Post() 
{ 
    var table = $('#table4').dataTable(); 
    var data = table.$('input:text').serialize(); 
    console.log(datas); 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("SaveList")', 
     data: data, 
     datatype: 'json', 
     success: function() { 
      alert('success'); 
     } 
    }); 
} 

操作:

public ActionResult SaveList(List<string> inputgrams, List<string> id) 
    { 
     ... 
    }