编辑模板

时间:2014-06-09 13:55:47

标签: asp.net-mvc razor

我需要一个编辑器模板(aspx或razor,并不重要)来编辑一个只能有1或0的整数值(对于true和false)。

我没有使用布尔值的原因是因为我必须使用的数据库模型。

我需要显示一个复选框,其中:

  

检查:1

     

取消选中:0

我有这个:

@model int? 
@Html.CheckBox("statusID", Model.HasValue && Model.Value == 1)

但是没有用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我喜欢这里的第二个答案:https://stackoverflow.com/a/12513382/3622021来解决你遇到的问题。使用[NotMapped]修饰的属性扩展视图模型,该属性在您的可空int和布尔显示值之间进行转换。

public class MyViewModel
{
    public int? statusID { get; set; }

    [NotMapped]
    public bool StatusChecked
    {
        get { return statusID == 1 ? true : false; }
        set { statusID = value ? 1 : 0; }
    }
}

然后,只需使用以下内容绑定到StatusChecked属性而不是statusID属性:

@model MyViewModel 
@Html.CheckBoxFor(m=>m.StatusChecked)

当然,这假设您可以控制您允许绑定到UI的模型类型。如果出于某种原因,你仍然坚持使用严格意义上的int模型,这将无法工作?如上面的代码所示。