2015-06-12 36 views
0

通過AJAX將JSON添加到我的控制器中:我缺少什麼?

// fbi: Files batch info 

    $.ajax({ 
     xhr: function() { 
      var xhr = new window.XMLHttpRequest(); 
      return xhr; 
     }, 
     type: 'POST', 
     url: '@Url.Action("AddFilesToDB","FileUploadAsync")', 
     data: JSON.stringify(fbi), 
     contentType: false, 
     processData: false, 
     success: function(retInfo) { 
      console.log(JSON.stringify(retInfo)); 
     } 
    }); 

如何我指的是JSON.stringify,像

'{org:"someOrganization",cat:"someCategory",fileNames:[somepic.jpg,somepaper.docx]' 

從我的控制器內的物體的結果

[HttpPost] 
public async Task<JsonResult> addFilesToDB (???) 
{ 
    ??? Want to use the value of data 
} 

我知道這可能是一個明顯的問題,但我是新來的這東西

+3

創建一個屬性爲'string Org','Cat Cat'和'string [] Filenames'的模型,以便模型與您的數據綁定。 –

+0

並且該模型類型的元素應該是該函數的參數嗎? –

+0

檢查這個,它可能對你有用http://codepedia.info/2015/02/jquery-ajax-json-example-asp-net-sql-database/ –

回答

1

這裏去了解決方案,首先創建一個模型FileData

public class FileData 
{ 
    public string org { get; set; } 
    public string cat { get; set; } 
    public string[] filenames { get; set; }  
} 

然後創建一個動作,如下圖所示 -

public JsonResult PostFileData(FileData filedata) 
{ 
    return Json("True"); 
} 

然後在視圖jQuery代碼應該是 -

<script src="~/Scripts/jquery-1.10.2.min.js"></script> 
<script> 
    $(function() { 
     $("#btnSubmit").click(function() { 
      var roles = ["somepic.jpg", "somepaper.docx"]; 

      var model = new Object(); 
      model.fileNames = roles; 
      model.cat = "business"; 
      model.org = "news"; 

      jQuery.ajax({ 
       type: "POST", 
       url: "@Url.Action("PostFileData", "Home")", 
       dataType: "json", 
       contentType: "application/json; charset=utf-8", 
       data: JSON.stringify({ filedata: model }), 
       success: function (data) { alert(data); }, 
       failure: function (errMsg) { 
        alert(errMsg); 
       } 
      }); 
     }); 
    }); 
</script> 

<input type="button" value="Click" id="btnSubmit" /> 

當你點擊btnSubmit,所有的值將被張貼到上面的動作,並帶有一個斷點,它應該如下所示 -

enter image description here

相關問題