委托'Func'不带0个参数

时间:2014-02-07 16:55:54

标签: c# asp.net-mvc lambda

我正在尝试在MVC中向网格添加列,现在Column方法的第一个参数为文本采用字符串。所以我试图使用lambda函数从绑定对象中检索一个字符串,这是我到目前为止所做的,但编译器返回一个委托'Func'不带0参数

g.AddActionColumn(((Func<User, string>)((x)=> {return x.CurrentApplication.Name;}))())

网格绑定到IEnumerable<User>,而CurrentApplication是一个名为Application的类。

AddActionColumn的签名是:

 public TbbGrid<TModel, TId> AddActionColumn(string linkText, 
    string action = null, string controller = null, string area = null, 
    bool usePreviousUrl = false, bool isVisible = true,
    Func<TModel, bool> condition = null, string cellCssClasses = null, 
    string linkCssClasses = null, string headerCssClasses = null, 
    string headerText = null, string emptyText = null, 
    string propertyName = null, bool isSortable = false, 
    string previousUrlOverride = null)

1 个答案:

答案 0 :(得分:1)

它不起作用的原因是因为AddActionColumn没有将Func<>作为其第一个参数,它需要string

你不能只传入一些在调用时返回字符串的东西,因为这个API不是那样设计的。