1

我需要实现一个自定义帮助器,它将返回一个可以具有值“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”变量?

4

1 回答 1

1

ViewModel 或部分模型中的未映射属性将是可行的方法。

您将无法CheckBoxFor在不存在的财产上使用。

想象一下带有“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

于 2013-05-29T12:57:44.107 回答