我有一个表格,如下:
您看到的填充列表可能会有所不同,具体取决于用户在前一个屏幕中选择的“胶囊大小”。换句话说,如果用户在前一个屏幕中选择“胶囊 0”并单击提交,则此屏幕将显示该胶囊的填充物列表。这一切都很完美。我需要做的是捕获在此表格上选择的填充物。当用户在此表单上单击“创建”时,代码将调用“进程”控制器中的“GetResults”方法:
public ActionResult GetResults(ProcessViewModel vm)
{
List<Results> results = context.GetResults();
return View(results);
}
这是我的 ViewModel,这个特定的 View 正在运行:
public class ProcessViewModel
{
public audit_session AuditSession { get; set; }
public int NumberOfCapsules { get; set; }
public int CapsuleFK { get; set; }
public audit_ingredient_active Active1 { get; set; }
public audit_ingredient_active Active2 { get; set; }
public audit_ingredient_active Active3 { get; set; }
public audit_ingredient_active Active4 { get; set; }
public audit_ingredient_active Active5 { get; set; }
public audit_ingredient_active KeyActive { get; set; }
public audit_ingredient_filler Filler { get; set; }
public bool E4M { get; set; }
public bool K100M { get; set; }
public List<filler> Fillers { get; set; }
}
我想要做的是捕获选择的填充物并以某种方式将其绑定到我的 ViewModel 中的填充物。我怎样才能做到这一点?其他所有内容都正确绑定(E4M、K100M 以及表单上您看不到的所有其他字段)。
这是我的填充列表的标记的样子——我怀疑这里有问题,因为我对这个标记不是 100% 有信心:
<label>Choose Filler:</label><br />
<fieldset data-role="controlgroup">
@foreach (var i in Model.Fillers)
{
@Html.RadioButtonFor(x => x.Filler, "false", new { name = "radio-choice", id = i.pk });
<label for="@i.pk">@i.name</label>
}
</fieldset>