我有一个文本框和一个Select Options Multiple,我在viewModel中使用敲除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 () {
}
});
我的控制器
public ActionResult AddApplications(string ApplicationsName,List<string> MetricsChosenModel)
{
//Code here
return View();
}
我的MetricsChosenModel以以下格式存储数据
MetricsChosenModel [0] => 5
MetricsChosenModel [1] => 6
为什么我不能接收MetricsChosenModel的列表值,但是我却可以接收ApplicationsName,
如果有人可以解释,我在这里怎么错,那也很好。
谢谢,
最佳答案
不知道您的路由是什么样子,很难确定问题的确切根源。如果我不得不猜测,我想说的是您通过URL(路由或querystring参数)获得了ApplicationsName
值。如果是这种情况,您可以将[FromBody]
属性添加到MetricsChosenModel
。但是请注意,每个方法签名只允许一个FromBodyAttribute
。如果需要更多变量,则此问题的简单解决方案是创建一个模型,其中包含要在控制器操作中接收的每个属性。
希望有帮助!