我需要实现一个自定义帮助程序,它将返回一个字符串,该字符串可以是值“1”或“0”的CheckBox而不是TextBox。所以在自定义助手中我有:
public static MvcHtmlString MyCustomHelper<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
....
Expression<Func<TModel, bool>> boolExpression = ??????????
return helper.CheckBoxFor(boolExpression);
}
应该为'boolExpression'变量分配什么?
答案 0 :(得分:1)
部分模型中的ViewModel或未映射属性将是最佳选择。
您将无法在不存在的财产上使用CheckBoxFor
。
想象一下你的String属性为“0”或“1”。
public string MyProperty{get;set;}
private bool myBooleanProperty_;
[NotMapped]
public bool MyBooleanProperty {
get {
myBooleanProperty_ = MyProperty == "1";
return myBooleanProperty_;
}
set {
myBooleanProperty_ = value;
}
然后你可以使用
@Html.CheckBoxFor(x => x.MyBooleanProperty)
当您在表单中发布值时,您当然会将值设置为MyProperty
,具体取决于MyBooleanProperty
的值。