2014-04-28 46 views
2

我在ASP.Net MVC 4項目中定義一個定製的幫手如下無法轉換lambda表達式到類型「INT」

public static class CustomHelpers 
{ 
    public static string UserNameForID(int UserIDValue) 
    { 
     // do database operation and return record for UserIDValue 
     return "ABC"; 
    } 
} 

在我看來,我的代碼

@model ABC.DataAccess.Product 
@CustomHelpers.UserNameForID((model=>model.LAST_UPDATE_BY)) 

以上代碼給出了這樣的錯誤:

"Cannot convert lambda expressions to type 'int' becasue it is not a delegate type.

enter image description here

但是如果我測試上述代碼

@CustomHelpers.UserNameForID(1) 

應用程序返回按預期的方式串ABC

如何解決此錯誤?我想傳遞存儲在模型的LAST_UPDATE_BY中的值。

+0

爲什麼使用雙括號 –

回答

2

model=>model.LAST_UPDATE_BY從類型Expression<...>生成參數。 (有關樣本見Html.EditorFor()

您CustomHelpers方法希望int類型的參數,所以你必須把它想:?

@CustomHelpers.UserNameForID(Model.LAST_UPDATE_BY) 
+0

感謝..它曾作爲每你的建議。 – bp581

3

您正試圖將表達式轉換爲該表達式的結果。只需使用:

@model ABC.DataAccess.Product 
@CustomHelpers.UserNameForID(Model.LAST_UPDATE_BY) 
相關問題