2011-08-10 12 views
0

こんにちはMVCビューを持っていて、私はActionLinkを作りたいと思っていました。私の見解ではMVC ActionLink 'ラムダ式がデリゲート型ではないため、' string '型に変換できません'

私が持っている:

@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のメソッドの最初のパラメータは、いくつかの問題を引き起こしています。テキストを組織名に設定したいと思います。しかし、エラー 'ラムダ式をデリゲート型ではないため' string '型に変換できません。 nameプロパティはすでに文字列であるため、参照が何であるか分かりません。

誰もがこのエラーを回避する方法を知っていますか?

答えて

3

linkText引数を文字列として渡すだけです。

actionNameとcontrollerNameの引数を修正して、そのIDをrouteValue引数に渡す必要があると思います。次のようなものがあります。

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

大変ありがとうございます。 – AnonyMouse

+0

@AnonyMouse私は自分の答えを更新しました - 私はあなただけのlinkText引数よりも修正する必要があると思う – Graham

+0

ええ、それらを実行したときに問題が見つかりました。あなたの助けに感謝のヒープ。 – AnonyMouse

関連する問題