ASP.NET MVC复选框,带有相应值字段的Name属性

时间:2014-04-16 09:22:17

标签: c# asp.net-mvc

我的模特

public class MyFormField
{
    public List<MyClass> propName { get; set; }
    public string Value { get; set; }
}
public class MyClass
{
    public string Name { get; set; }
}

传递 MyFormField列表以查看

在视图中

@foreach (var item in Model.propName)
 {

  @Html.TextBoxFor(m => m.Name)
 }

我需要在textBox之前添加一个checkBox,如下所示

@foreach (var item in Model.propName)
 {
 @Html.checkbox("")
  @Html.TextBoxFor(m => m.Name)
 }

并且每个复选框都应具有唯一的name属性作为相应的文本框。我怎样才能改变我的模型来实现这个目标?

对于业务需求,我需要为每个相应的文本框设置一个复选框,或者我在MVC中可以实现哪些更好的方式?

2 个答案:

答案 0 :(得分:2)

添加到您的型号:

public class MyClass
{
    public string Name { get; set; }
    public boolean Checked {get;set;}
}

然后添加:

@Html.CheckBoxFor(model => item.Checked)
@Html.TextBoxFor(model => item.Name)

这样,每个复选框都与列表中的MyClass相对应

答案 1 :(得分:1)

public class MyClass
{
    public string Name { get; set; }
    public boolean Checked {get;set;}
}

这样做,每行都有唯一的ID。

@for (int i = 0; i < Model.propName.Count; i++)
{
    @Html.CheckBoxFor(m => m.propName[i].Checked, new { class = "propName_" + i })
    @Html.TextBoxFor(m => m.propName[i].Name, new { class = "propName_" + i })
}