【发布时间】:2014-07-01 12:46:16
【问题描述】:
我将向我的用户展示一个表格,让他们填写表格以获得一些报价。我想将一系列对象(约 15 个左右)显示为复选框。问题是,我不想在 15 个布尔值中硬编码,我希望它们在每个用户的基础上动态构建。所以我想出的模型的简化版本看起来像这样:
public class InqueryViewModel
{
public string Origin { get; set; }
public string Destination { get; set; }
public decimal Weight { get; set; }
public IEnumerable<Option> AdvancedOptions { get; set; }
}
public class Option
{
public bool Selected { get; set; }
public string Type { get; set; }
}
问题是,我不知道如何绑定 AdvancedOptions。我试过这个:
@foreach (var option in Model.AdvancedOptions)
{
<div class="col-xs-4">
<div class="col-xs-1">
@Html.CheckBoxFor(x => option.Selected)
</div>
<div class="col-xs-2">
@option.Type
</div>
<div class="col-xs-1"></div>
</div>
}
但这不起作用。我对尝试在 MVC 中使用前端表单还很陌生,所以我可能只是以错误的方式解决这个问题。有什么建议吗?
【问题讨论】:
-
您是否为
Model.AdvancedOptions设置了值?或者它是空的还是空的? -
是的,我在将它们发送到视图之前填充它们。
-
在
var option in Model.AdvancedOptions那一行放置一个调试器(按f9),看看设置了什么
标签: c# asp.net-mvc forms asp.net-mvc-5