2016/10/09

ASP.NET MVC の modelItem とはなにか


ASP.NET MVC の スキャフォールディングを利用して View を作成すると、以下のように HTML.DisplayFor ヘルパーが作成されます(抜粋)。

しかし、modelItem というのはどこにも宣言されていないのですが、これは一体何なのでしょう?

@model IEnumerable<MvcBasic.Models.Member>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Email)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Birth)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Married)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Memo)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

この modelItem ですが、どうも初心者泣かせのものらしく、実はラムダ式のパラメーターなのに、式の部分で利用していないということのようです。

ラムダ式のパラメーターは式の部分で利用するのが普通です。ですが、この自動作成されたラムダ式はそうなっていないので、初心者を混乱させるという訳です。

また、日本語の情報がないというのも初心者泣かせですね。

ご注意ください。

 

■参考サイト


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから