我有一个文本框和一个选择选项多个,我使用 viewModel 中的knockout selectedOptions 存储所有选定的项目。
如果我尝试使用 ajax 将捕获的信息传递到我的 Controller ,我将无法接收我的 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 () {
}
});
我的 Controller
public ActionResult AddApplications(string ApplicationsName,List<string> MetricsChosenModel)
{
//Code here
return View();
}
我的 MetricsChosenModel 以以下格式存储数据 指标选择模型[0] => 5 MetricsChosenModel [1] => 6
为什么我无法接收 MetricsChosenModel 的列表值,但我能够接收ApplicationsName,
如果有人能解释一下,我在这里哪里错了,那就太好了,
谢谢
最佳答案
如果不知道您的路由是什么样子,就很难查明问题的确切根源。如果我不得不猜测,我会说您是通过 URL(路由或查询字符串参数)获取 ApplicationsName
值。如果是这种情况,您可以将 [FromBody]
属性添加到 MetricsChosenModel
中。但请注意,每个方法签名只能使用一个 FromBodyAttribute
。如果您需要更多变量,解决此问题的一个简单方法是创建一个模型,其中包含您希望在 Controller 操作中接收的每个属性。
希望有帮助!
关于c# - 通过 Ajax 将 Var 和列表传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21249892/