【发布时间】:2017-02-03 20:52:51
【问题描述】:
我正在开发一个 MVC 助手,我想在其中处理模型的每个属性。
我创建了以下类:
public class DataTableHtmlString<T> : HtmlString
where T : class
{
public DataTableHtmlString(string value) :
base(value)
{
}
public DataTableHtmlString<T> Columns<TM>(Expression<Func<TM, T>> columns)
where TM : DataTableColumn<T>
{
return this;
}
}
我的数据列类如下所示:
public class DataTableColumn<T>
{
internal string ColumnTitle { get; set; }
public void Column(Expression<Action<T>> column)
{
}
}
当我使用调用我的辅助方法时:
@(Html.MyControls()
.MyGrid<PersonModel>()
.Columns(column =>
{
column.Column(w => w.Name);
})
)
.Columns 方法的错误如下: "无法从用法中推断方法 'DataTableHtmlString.Columns(Expression>)' 的类型参数。请尝试显式指定类型参数。"
更新
我添加了Columns<DataTableColumn<Jquery.DataTable.MVC5.Demo.Models.PersonModel>> 及其工作,但我已经提到 Columns 方法,TM 是 DataTableColumn,T 是类,MyGrid<PersonModel> 可以使用它,为什么我需要再次定义?我认为编译器应该从签名本身知道?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 lambda