2011-08-10 79 views
0

嗨,我有一個MVC視圖,我想製作一個ActionLink。MVC ActionLink'不能將lambda表達式轉換爲類型'字符串',因爲它不是委託類型'

在我看來,我有:

@foreach (var item in Model.Invoices) { 
     <tr> 
     <td> 
     @Html.ActionLink(modelItem => item.Organisation.Name, "EditInvoice(" + item.Id + ")", "InvoiceController") 
     </td> 
     <td> 
     @Html.DisplayFor(modelItem => item.InvoiceDate) 
     </td> 
     <td> 
     @Html.DisplayFor(modelItem => item.TotalExcludingGst) 
     </td> 
     </tr> 
    } 
     </table> 

的ActionLink的方法,第一個參數是引發了一些問題。我想將文本設置爲組織名稱。然而,它會拋出錯誤「不能將lambda表達式轉換爲類型'字符串',因爲它不是委託類型'。 name屬性已經是一個字符串,所以我不確定引用是關於什麼的。

有人知道繞過這個錯誤嗎?

回答

3

只需將linkText參數作爲字符串傳遞即可。

我想你還需要更正actionName和controllerName參數,並在routeValue參數中傳遞ID。例如:

@Html.ActionLink(item.Organisation.Name, "Edit", "Invoice", new { Id = item.Id }, null) 
+1

非常感謝,沒想到會那麼簡單。 – AnonyMouse

+0

@AnonyMouse我已經更新了我的答案 - 我認爲你需要修正的不僅僅是linkText參數 – Graham

+0

是的,當我運行它時發現了這些問題。謝謝你的幫助。 – AnonyMouse

相關問題