我的模特
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中可以实现哪些更好的方式?
答案 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 })
}