模型列表中所有项目的所有单选按钮组合在一起
All radio buttons are grouped together for all the items in the model list
我正在使用 MVC5
情况:
我的视图遍历 Person class 列表,其中属性如下:
int Id
string Name
string City
string ChosenText
List<string> SomeTextList
这个字符串列表将是随机生成的字符串。
在遍历列表时,所有 SomeTextList 都应显示为单选按钮。因此对于每个人都有:
- 一个名称文本框
- 城市的一个文本框
- SomeTextList 的单选按钮组
密码是:
@foreach (var item in Model)
{
@Html.EditorFor(modelItem => item.Name)
<br />
@Html.EditorFor(modelItem => item.Name)
@foreach (var ans in item.SomeTextList)
{
@Html.RadioButtonFor(modelItem => item.ChosenText, "ans")@Html.Label(ans)
}
}
问题:
对于所有人,单选按钮作为一组,即我可以 select 所有人员列表中只有一个自由文本单选按钮。
目标:
对于每个人,我应该能够 select 一个单选按钮。
您需要使用 for
循环在集合中生成控件(不是 foreach
循环,它会生成重复的 name
和 ID
属性并且不会 post回一个合集)
因为您生成的每个单选按钮都具有相同的名称属性<input type="radio" name="ChosenText" ... />
它们都属于同一组,因此只能选择一个。
for(int i = 0; i < Model.Count; i++)
{
@Html.EditorFor(m => m[i].Name)
<br />
@Html.EditorFor(m => m[i].City)
@foreach (var ans in Model[i].SomeTextList)
{
<label>
@Html.RadioButtonFor(m => m[i].ChosenText, ans)
<span>@ans</span>
</label>
}
}
这将生成(用于单选按钮)
<input type="radio" name="[0].ChosenText" value="abc" />
<input type="radio" name="[0].ChosenText" value="xyz" />
.....
<input type="radio" name="[1].ChosenText" value="abc" />
<input type="radio" name="[1].ChosenText" value="xyz" />
我正在使用 MVC5
情况: 我的视图遍历 Person class 列表,其中属性如下:
int Id
string Name
string City
string ChosenText
List<string> SomeTextList
这个字符串列表将是随机生成的字符串。
在遍历列表时,所有 SomeTextList 都应显示为单选按钮。因此对于每个人都有:
- 一个名称文本框
- 城市的一个文本框
- SomeTextList 的单选按钮组
密码是:
@foreach (var item in Model)
{
@Html.EditorFor(modelItem => item.Name)
<br />
@Html.EditorFor(modelItem => item.Name)
@foreach (var ans in item.SomeTextList)
{
@Html.RadioButtonFor(modelItem => item.ChosenText, "ans")@Html.Label(ans)
}
}
问题: 对于所有人,单选按钮作为一组,即我可以 select 所有人员列表中只有一个自由文本单选按钮。
目标: 对于每个人,我应该能够 select 一个单选按钮。
您需要使用 for
循环在集合中生成控件(不是 foreach
循环,它会生成重复的 name
和 ID
属性并且不会 post回一个合集)
因为您生成的每个单选按钮都具有相同的名称属性<input type="radio" name="ChosenText" ... />
它们都属于同一组,因此只能选择一个。
for(int i = 0; i < Model.Count; i++)
{
@Html.EditorFor(m => m[i].Name)
<br />
@Html.EditorFor(m => m[i].City)
@foreach (var ans in Model[i].SomeTextList)
{
<label>
@Html.RadioButtonFor(m => m[i].ChosenText, ans)
<span>@ans</span>
</label>
}
}
这将生成(用于单选按钮)
<input type="radio" name="[0].ChosenText" value="abc" />
<input type="radio" name="[0].ChosenText" value="xyz" />
.....
<input type="radio" name="[1].ChosenText" value="abc" />
<input type="radio" name="[1].ChosenText" value="xyz" />