我有一个实验表,对于每个实验,我需要能够打开或关闭它。我将我的实验列表传递给我的视图,并迭代它们以创建表格行。
表行创建:
<tr>
<td>@experiment.ExperimentId</td>
<td>@experiment.ExperimentName</td>
<td>@experiment.StartDate</td>
//radio button code goes here
</tr>
我决定使用单选按钮助手为每个实验生成两个单选按钮。
<td>@Html.RadioButton(experiment.ExperimentName, true, false)ON @Html.RadioButton(experiment.ExperimentName, false, false)OFF</td>
我使用'ExperimentName'作为输入名称,因为我希望每组单选按钮都在他们自己的组中。
我的问题是,当我提交此表单时,我应该如何将数据绑定到帖子模型。我想在模型
中创建这样的东西实验 ExperimentOne - &gt; 选择的radiobutton值 ExperimentTwo - &gt; 选择的radiobutton值
我假设我需要创建一个Dictionary对象,但我不确定如何将名称和所选值绑定到此。任何帮助将不胜感激
答案 0 :(得分:0)
由于您正在处理启用/禁用的情况,我建议使用两个单选按钮上的复选框。在任何一种情况下,您的模型可能如下所示:
public class ExperimentsViewModel
{
// other properties
public IDictionary<int, bool> ExperimentStatus { get; set; }
}
你会在你的视图中绑定到这个:
<td>@Html.CheckBox("ExperimentStatus[0]", Model.ExperimentStatus[0]) Enabled</td>
模型绑定器将字典视为数组或列表; use可以使用索引(在这种情况下为键)绑定到一个值。您也可以使用字符串键而不是整数。
如果必须使用单选按钮,您的视图将如下所示:
<td>
@Html.RadioButton("ExperimentStatus[0]", true, Model.ExperimentStatus[0], new {id = "ExperimentStatus_0_ON"})@:ON
@Html.RadioButton("ExperimentStatus[0]", false, Model.ExperimentStatus[0], new {id = "ExperimentStatus_0_OFF"})@:OFF
</td>
您必须手动包含这样的id属性,否则ON和OFF输入将具有相同的ID,这是无效的HTML。