3
我已經設置了公司預計,該對象控制器被張貼到它:將複雜的JSON提交給MVC控制器。我如何命名嵌套對象?
public class PrintJob
{
public string BarTenderFile { get; set; }
public string PrinterName { get; set; }
public List<TagLabel> Queue { get; set; }
}
public class TagLabel
{
public string Season { get; set; }
public string STSStyle { get; set; }
public string VStyle { get; set; }
public string ColorCode { get; set; }
public int CODI { get; set; }
public string SizeDesc { get; set; }
public string StyleDesc { get; set; }
public string ColorDesc { get; set; }
public string Vendor { get; set; }
public int Qty { get; set; }
public long UPC { get; set; }
public double CurrRetail { get; set; }
public double OrigRetail { get; set; }
public string AvailableIn { get; set; }
}
我試圖使用JSON來表示我的目標是通過AJAX提交到我的控制器。它適用於PrintJob
的頂級屬性,控制器可以看到BarTenderFile
和PrinterName
屬性的值。問題是Queue
。我的JavaScript看起來像這樣:
var queue = [];
$('#queue tr').each(function() {
var tagLabel = $.parseJSON($(this).find('pre').text());
queue.push(tagLabel);
});
var data = {
"BarTenderFile": $('#btFile').val(),
"PrinterName": $('#printer').val(),
"Queue": queue
}
$.ajax({
type: 'POST',
url: window.submitQueueUrl,
dataType: "application/json",
data: data,
success: function (returnVal) {
// Do success stuff
}
});
的JSON每個Queue
對象存儲隱藏<pre>
標籤內的頁面上,格式化使每名在我TagLabel
對象名稱匹配。我認爲這比使用大量隱藏的輸入字段更容易。正在發送的JSON不會產生錯誤,後端代碼會毫無問題地對其進行摘要。問題是,當我將此提交給控制器時,Queue
由object
列表填充。最後的結果是,在我的控制器中,Queue
將有我選擇的許多隊列項目,但每個隊列項目都由空值和零填充。如何告訴我的控制器識別每個隊列項目是TagLabel而不是通用對象?
您還沒有發送JSON,改變'數據:''到的數據:JSON.stringify(數據),'。 'dataType'指定的響應類型不是你要發送的類型('contentType')。 – MrCode
數據看起來不錯,但你可以發佈'tagLabel'的樣子嗎? –
@MrCode/headdesk。當然就是這樣。把這作爲答案,我會標記它。謝謝! –