Asp.net mvc 3 如何在mvc3表单中获取选中的复选框值?

Asp.net mvc 3 如何在mvc3表单中获取选中的复选框值?,asp.net-mvc-3,checkbox,Asp.net Mvc 3,Checkbox,我有一个表格,在我的表格中,用户可以填写他们的详细信息,并在复选框中选择他们的兴趣。我将兴趣部分作为局部视图放置在表单中 形式有 名称 出生日期 位置 兴趣复选框列表 我有一个模型,有所有字段名称,生日,地点。 和另一个查找模型的模型 现在当我提交表格时。所有字段,如姓名、生日和职位,都将提交到模型中,但我并没有收到选中项目列表中的复选框 如何在表单提交中获取复选框值?这似乎是编辑器模板的一个好选择。一如既往,我们从设计视图模型开始: public class MyViewModel {

我有一个表格,在我的表格中,用户可以填写他们的详细信息,并在复选框中选择他们的兴趣。我将兴趣部分作为局部视图放置在表单中

形式有

名称 出生日期 位置 兴趣复选框列表 我有一个模型,有所有字段名称,生日,地点。 和另一个查找模型的模型

现在当我提交表格时。所有字段,如姓名、生日和职位,都将提交到模型中,但我并没有收到选中项目列表中的复选框


如何在表单提交中获取复选框值?

这似乎是编辑器模板的一个好选择。一如既往,我们从设计视图模型开始:

public class MyViewModel
{
    public string Name { get; set; }
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? DateOfBirth { get; set; }
    public string Place { get; set; }
    public IEnumerable<InterestViewModel> Interests { get; set; }
}

public class InterestViewModel
{
    public int Id { get; set; }
    public string InterestLabel { get; set; }
    public bool IsSelected { get; set; }
}
然后是视图~/Views/Home/Index.cshtml


这似乎是编辑器模板的一个很好的候选者。一如既往,我们从设计视图模型开始:

public class MyViewModel
{
    public string Name { get; set; }
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? DateOfBirth { get; set; }
    public string Place { get; set; }
    public IEnumerable<InterestViewModel> Interests { get; set; }
}

public class InterestViewModel
{
    public int Id { get; set; }
    public string InterestLabel { get; set; }
    public bool IsSelected { get; set; }
}
然后是视图~/Views/Home/Index.cshtml


你能给我们看一些代码吗?NET MVC 3完全能够将表单字段自动映射到模型。因为这都是关于兴趣列表的,请显示视图和模型的适当部分。您能给我们看一些代码吗?NET MVC 3完全能够将表单字段自动映射到模型。因为这都是关于兴趣列表的,请显示视图和模型的相应部分。嗨,你是如何将InterestViewModel.cshtml链接到Index.cshtml的。我完全按照你说的,但我只获取值,而不是复选框。。我缺少的是??它按惯例工作:在视图模型中,Interests属性的类型为IEnumerable=>asp.net mvc将搜索文件/Views/Shared/EditorTemplates/InterestViewModel.cshtml,因为这是集合中使用的类型名称。是的,谢谢。。就在几秒钟前,我搜索了关于EditorTemplates的内容,但我不知道这一点。嗨,你是如何将InterestViewModel.cshtml链接到Index.cshtml的。我完全按照你说的,但我只获取值,而不是复选框。。我缺少的是??它按惯例工作:在视图模型中,Interests属性的类型为IEnumerable=>asp.net mvc将搜索文件/Views/Shared/EditorTemplates/InterestViewModel.cshtml,因为这是集合中使用的类型名称。是的,谢谢。。就在几秒钟前我搜索了EditorTemplates我不知道。。
@model MyViewModel

@using (Html.BeginForm())
{
    <div>
        @Html.LabelFor(x => x.Name)
        @Html.EditorFor(x => x.Name)
    </div>
    <div>
        @Html.LabelFor(x => x.DateOfBirth)
        @Html.EditorFor(x => x.DateOfBirth)
    </div>
    <div>
        @Html.LabelFor(x => x.Place)
        @Html.EditorFor(x => x.Place)
    </div>
    <h2>Interests</h2>
    @Html.EditorFor(x => x.Interests)

    <button type="submit">OK</button>
}
@model InterestViewModel

@Html.LabelFor(x => x.IsSelected, Model.InterestLabel)
@Html.CheckBoxFor(x => x.IsSelected)
@Html.HiddenFor(x => x.Id)
@Html.HiddenFor(x => x.InterestLabel)