模型中每一行的 MVC 剃须刀部分视图单选按钮选择
MVC razor partial view radio button selection for each row in model
我有一个显示包含 4 个数据列的视图模型列表的局部视图。我想让用户 select 1 行并按下按钮以 POST 操作。视图模型如下所示:
public class ViewModelSelection
{
public long SelectedItem { get; set; }
public List<ViewModelFromDB> Choices { get; set; }
}
部分视图如下所示:
@model MyApp.ViewModels.ViewModelSelection
<h4>Title</h4>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table>
<tr>
<th></th>
<th>Name</th>
<th>MeasureA</th>
<th>MeasureB</th>
</tr>
@foreach (var item in Model.Choices)
{
<tr>
<td>
@Html.RadioButton(item.id, Model.SelectedItem)
</td>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.measureA)
</td>
<td>
@Html.DisplayFor(modelItem => item.measureB)
</td>
</tr>
}
</table>
<input type="submit" value="Save" class="" />
}
我希望将视图模型的 SelectedItem 属性 设置为 selected 行的 id 字段。非常感谢任何建议。
您创建的单选按钮具有不同的名称,因此它们未分组(即您可以 select 所有这些按钮)并且与您的模型无关。将单选按钮更改为
@Html.RadioButtonFor(m => m.SelectedItem, item.id, new { id = "" })
如果您随后 post 使用参数 int selectedItem
的控制器方法,那么 selectedItem
将包含 selected Choice
的 ID。或者,您的参数可以是 ViewModelSelection model
,在这种情况下,model.SelectedItem
将包含该值。
旁注:new { id = "" }
删除了输入 id
属性以确保您具有有效的 html(没有重复的 id
属性)
我有一个显示包含 4 个数据列的视图模型列表的局部视图。我想让用户 select 1 行并按下按钮以 POST 操作。视图模型如下所示:
public class ViewModelSelection
{
public long SelectedItem { get; set; }
public List<ViewModelFromDB> Choices { get; set; }
}
部分视图如下所示:
@model MyApp.ViewModels.ViewModelSelection
<h4>Title</h4>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table>
<tr>
<th></th>
<th>Name</th>
<th>MeasureA</th>
<th>MeasureB</th>
</tr>
@foreach (var item in Model.Choices)
{
<tr>
<td>
@Html.RadioButton(item.id, Model.SelectedItem)
</td>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.measureA)
</td>
<td>
@Html.DisplayFor(modelItem => item.measureB)
</td>
</tr>
}
</table>
<input type="submit" value="Save" class="" />
}
我希望将视图模型的 SelectedItem 属性 设置为 selected 行的 id 字段。非常感谢任何建议。
您创建的单选按钮具有不同的名称,因此它们未分组(即您可以 select 所有这些按钮)并且与您的模型无关。将单选按钮更改为
@Html.RadioButtonFor(m => m.SelectedItem, item.id, new { id = "" })
如果您随后 post 使用参数 int selectedItem
的控制器方法,那么 selectedItem
将包含 selected Choice
的 ID。或者,您的参数可以是 ViewModelSelection model
,在这种情况下,model.SelectedItem
将包含该值。
旁注:new { id = "" }
删除了输入 id
属性以确保您具有有效的 html(没有重复的 id
属性)