在MVC 4视图中,我在提交期间将值分配给隐藏。但我没有把这个价值带回控制器。这是我的代码
@model Web.Models.FeaturedContactViewModel
@using (Html.BeginForm("Update", "User", FormMethod.Post))
{
@Html.HiddenFor(m => m.FeaturedSelected);
<input type="submit" value="Update" onclick="return onSubmit()" />
}
@section scripts
{
<script type="text/javascript">
function onSubmit() {
var selectedOptions = $.map($('#FeaturedContacts option'),
function (e) { return $(e).val(); });
$("#FeaturedSelected").val(selectedOptions.join(","));
return true;
};
</script>
}
控制器
[HttpPost]
public ActionResult FeaturedContacts(FeaturedContactViewModel model)
{
return View();
}
FeaturedContactViewModel
public class FeaturedContactViewModel
{
public List<Contact> AllContacts { get; set; }
public List<Contact> FeaturedContacts { get; set; }
public int[] AllSelected { get; set; }
public int[] FeaturedSelected { get; set; }
}
答案 0 :(得分:0)
看起来你没有得到你的值的原因是因为你已经将它们定义为一个int数组,当你在视图的HTML中,你将值作为字符串。因此,您的视图模型的数组不会被填充。如果将FeatureSelected定义为string [],是否将值返回到控制器中?您始终可以将它们转换为控制器中的整数。