@html.CheckBoxFor剃刀视图中的问题?

时间:2013-01-31 16:27:29

标签: asp.net-mvc razor asp.net-mvc-4

我有一个回复提交按钮的表单。

我有一个复选框如下:

  @Html.CheckBoxFor(m => m.CheckBoxValue)

如果选中YES,我该如何获得,否则最好不要在我的模型中作为字符串..

  public bool CheckBoxValue { get; set; } OR
  public string CheckBoxValue { get; set; }

请帮忙。

由于

更新

这是要走的路。

   @Html.CheckBoxFor(m => m.CheckBoxValue)

   public bool CheckBoxValue { get; set; } 

1 个答案:

答案 0 :(得分:3)

您是否只是在寻找用户友好的价值显示?这应该发生在视图中,而不是模型中。像这样:

@Html.CheckBoxFor(m => m.CheckBoxValue)
<!-- some other markup, blah blah blah -->
@(Model.CheckBoxValue ? "Yes" : "No")

模型应尽可能只包含数据的结构和逻辑功能。任何用户友好性或用户看到并与之交互的任何内容都应该在视图中。

修改

根据您的评论,可以向模型中添加以下内容:

public string CheckBoxDisplayValue
{
    get
    {
        return CheckBoxValue ? "Yes" : "No";
    }
}

注意:除 bool属性CheckBoxValue之外,这是,它是绑定到视图的内容,而不是代替它。模型需要一个布尔值,因此CheckBoxValue是布尔值。所有这一切都是为模型添加一个只读属性,以显示布尔值的用户友好显示。

但不建议这样做。听起来你有一个最终目标,你没有在这里提出问题,并且可能有更好的方法来实现这个最终目标。