2016-01-14 54 views
0

這是我在這裏的第一個問題,所以請溫柔...我有一個CSHTML(ASP.NET MVC 5)頁面,在這裏我要上傳文件的某些行(在一個DataTable在頁面上),我已經存儲到一個JSON。 JSON的是這樣的:Blueimp文件上傳發送JSON對象到控制器上提交

JSON:

var jsonDataIds = [ 
{"Id":"9f835451-14ba-e511-a63e-643150188f7f",.. more data}, 
{"Id":"a0835451-14ba-e511-a63e-643150188f7f",.. more data}, 
{"Id":"a1835451-14ba-e511-a63e-643150188f7f",.. more data}]; 

我使用blueimp文件上傳來處理文件上傳。

這裏的腳本在我的頁面初始化元素:

的Javascript:

$("#inFile").fileupload({ 
      url: 'attachFile', 
      dataType: 'json', 
      formData: {ecId:jsonDataIds,usrId:"@User.GetId()"}, 
      add: function(e, data) { 
       fileData = data; 
      }, 
      done: function(event, data) { 
       alert(data.message); 
      }, 
      fail: function(event, data) { 
       alert("Error uploading the file."); 
      } 
     }); 

     $("#btnUpload").on('click', function() { 
      if(fileData){ 
       fileData.submit(); 
      } 
     }); 

當我在控制器attachFile檢查,usrId被接收,文件被接收,但IDS不是。

我想可能有一個限制,你只能發送字符串而不是json對象。

控制器:(局部的)

public ActionResult attachFile(List<MyModel> ecId, string modUsrId) 
// modUsrId is ok, ecId is NULL 
      { 
       for (int i = 0; i < Request.Files.Count; i++) 
// Request.Files.Count is ok 
+2

jsonDataIds的定義中缺少閉合方括號。當然,我知道這是SO –

+0

在這裏的錯誤信息,謝謝Marco!我將編輯:) –

+0

我還挺使它現在的工作......我所做的JSON成一個字符串,並將其發送到控制器,然後反序列串入我的模型的列表。我不喜歡這個解決方案,我會等着看有沒有更多。 –

回答

0

「問題」被固定通過發送JSON對象作爲字符串,然後串行化在控制器端。