我有一個文本框和一個選擇選項多個,我存儲了所有使用視圖模型中的knockout selectedOptions選擇的項目。通過Ajax將Var和列表傳遞給控制器
如果我嘗試使用ajax將捕獲的信息傳遞給我的控制器,我無法接收我的MetricsChosenModel。
var MetricsChosenModel= window.vm.MetricsChosenModel();
var ApplicationsNameValue = $.trim($("#add-Applications").val());
if (ApplicationsNameValue.length <= 0) {
$("#text-add-Applications").popover('show');
}
$.ajax({
url: '/Admin/AddApplications',
type: "POST",
dataType: "JSON",
data: { ApplicationsName: ApplicationsNameValue, MetricsChosenModel: MetricsChosenModel },
success: function (returndata) {
if (returndata == true) {
}
else {
}
},
error: function() {
}
});
我的控制器
public ActionResult AddApplications(string ApplicationsName,List<string> MetricsChosenModel)
{
//Code here
return View();
}
我MetricsChosenModel存儲在以下格式 MetricsChosenModel數據[0] => 5 MetricsChosenModel [1] => 6
爲什麼我不能收到MetricsChosenModel的列表值,我能夠接收應用程序名稱雖然,
而且它會是gre在如果有一個人能夠解釋,爲什麼我錯在這裏,
感謝,
編輯的問題是更確切的,我從我的文本框中獲取ApplicationsName,並在我的MetricsChosenModel中存儲「選擇combobox多個」信息。我的問題是爲什麼我無法將簡單的字符串變量'ApplicationsName'和列表'MetricsChosenModel'傳遞給我的控制器。雖然我能夠接收字符串變量'ApplicationsName',但不是列表 –
我的答案保持不變:在所需的操作方法中將'[FromBody]'添加到'MetricsChosenModel'參數。因爲'ApplicationsName'參數的類型是一個原語(字符串),所以框架可以通過URL傳遞值作爲路由值或查詢字符串參數。但是,我不相信它會嘗試將列表值推入查詢字符串。因此,您需要從請求主體讀取該值。您可以通過運行Fiddlr來查看發佈的請求來測試我的理論。 –