我需要一个编辑器模板(aspx或razor,并不重要)来编辑一个只能有1或0的整数值(对于true和false)。
我没有使用布尔值的原因是因为我必须使用的数据库模型。
我需要显示一个复选框,其中:
检查:1
取消选中:0
我有这个:
@model int?
@Html.CheckBox("statusID", Model.HasValue && Model.Value == 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模型,这将无法工作?如上面的代码所示。