1

在公司模型中,我有:

[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 和控制器代码?

  • 让演示者更改应用程序的行为是个好主意吗?如果有人从客户端更改复选框值,则服务数组将包含垃圾数据。在这种情况下,处理复选框以防止其受到此类噪音的最佳方法是什么:

    1. 用于多态服务名称的 ViewModel
    2. 枚举服务 {}
    3. 为公司模型中的每个服务创建单独的属性
    4. 类 Service{}:包含所有服务作为属性:

      A) 然后在模型中创建一个类型为 Services 的属性。

      B) 将服务作为一个实体并与公司建立联系。

4

0 回答 0