Razor中的自定义TextBoxFor:无法推断使用情况

时间:2016-12-14 11:03:18

标签: asp.net-mvc razor

我正在创建一个FormBuilder类,我可以根据UI框架进行交换,因此我使用实例方法而不是其他示例中的静态扩展方法。为了创建TextBoxFor实现,我正在尝试以下方法:

public class BootstrapFormBuilder<TModel> where TModel : class
{
    private readonly HtmlHelper<TModel> htmlHelper;
    private readonly TextWriter writer;

    public BootstrapFormBuilder(HtmlHelper<TModel> htmlHelper, TextWriter writer)
    {
        this.htmlHelper = htmlHelper;
        this.writer = writer;
    }

    public void TextBoxFor<TModel, TProperty>(Expression<Func<TModel, TProperty>> expression, bool required = false)
    {
        var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);

        //other stuff
    }
}

然而,在FromLambdaExpression我收到以下错误:

  

无法从用法推断出方法'ModelMetadata.FromLambdaExpression(Expression&gt;,ViewDataDictionary)'的类型参数。尝试明确指定类型参数。

作为旁注,Resharper警告我,TModel的使用似乎与先前的使用重复。

如何编译元数据行?我需要它来提取属性名称和值。

0 个答案:

没有答案