2014-02-07 49 views
-2

我正在嘗試添加一列到MVC中的網格,現在Column方法的第一個參數需要一個字符串作爲文本。所以我嘗試使用lambda函數來檢索綁定對象的字符串,這是我迄今爲止,但是編譯器返回一個代表「功能」不帶參數0委託'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) 
+4

「AddActionColumn」的簽名是什麼? – Servy

+0

我使用AddActionColumn簽名更新了原始帖子 – Risryn

+1

您*真的*需要對該功能做些什麼。沒有辦法應該接受這麼多參數。 – Servy

回答

1

它不工作的原因是因爲AddActionColumn不採取Func<>作爲第一個參數,它需要一個string

你不能只傳入某些返回字符串時被調用,因爲此API不是這樣設計的。

+0

我知道,我想要做的就是讓Func <>返回一個內聯字符串,我知道這可以完成。我只是無法讓它接受正確數量的參數 – Risryn

+0

@Risryn你希望得到哪個用戶的字符串? – Servy

+0

網格填充當前行中的用戶。如果函數接受了func <>,我只會使用x => x.CurrentApplication.Name – Risryn