由jquery分配的值不会回发到控制器

时间:2013-04-30 12:00:03

标签: asp.net-mvc-4

在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; }
}

1 个答案:

答案 0 :(得分:0)

看起来你没有得到你的值的原因是因为你已经将它们定义为一个int数组,当你在视图的HTML中,你将值作为字符串。因此,您的视图模型的数组不会被填充。如果将FeatureSelected定义为string [],是否将值返回到控制器中?您始终可以将它们转换为控制器中的整数。