在公司模型中,我有:
[Display(Name = "Offered Services")]
public string[] Services { get; set; }
我有一个标准的脚手架控制器。
现在,在 Razor 视图中,我需要使用自动将值绑定到模型的复选框助手,以便为浏览器生成以下标记:
<div class="editor-label">
Offered Services
</div>
<div class="editor-field">
<input type="checkbox" name="Services[]" id="services-safety" value="safety" />
<label for="services-safety">Safety</label>
<input type="checkbox" name="Services[]" id="services-healthy" value="healthy" />
<label for="services-healty">Healthy</label>
... <!-- more checkboxes in future -->
</div>
问题:
是否有任何助手将其绑定到模型,以便所选值保留
checked
在编辑视图中。是否可以不使用额外的 ViewModel 和控制器代码?让演示者更改应用程序的行为是个好主意吗?如果有人从客户端更改复选框值,则服务数组将包含垃圾数据。在这种情况下,处理复选框以防止其受到此类噪音的最佳方法是什么:
- 用于多态服务名称的 ViewModel
- 枚举服务 {}
- 为公司模型中的每个服务创建单独的属性
类 Service{}:包含所有服务作为属性:
A) 然后在模型中创建一个类型为 Services 的属性。
B) 将服务作为一个实体并与公司建立联系。