5

次のコードが正常に機能するのはなぜですか...

        <ul class="searchList">
            @if (Model.Count() > 0)
            {
                foreach (var partner in Model)
                {
                    <li>
                        @Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br />
                        @partner.Street<br />
                        @partner.CityStateZip<br />
                        @if(!string.IsNullOrEmpty(partner.Phone))
                            {
                               @partner.Phone<br />
                            }
                        @(partner.Distance) miles<br />
                    </li>
                }
            }
        </ul>

しかし、このコードはうまく動作しません...

            @if (Model.Count() > 0)
            {
                <ul class="searchList">

                        foreach (var partner in Model)
                        {
                            <li>
                                @Html.ActionLink(@partner.Name, "Details", "Partner", new { id = partner.AID }, null)<br />
                                @partner.Street<br />
                                @partner.CityStateZip<br />
                                @if(!string.IsNullOrEmpty(partner.Phone))
                                    {
                                       @partner.Phone<br />
                                    }
                                @(partner.Distance) miles<br />
                            </li>
                        }

                </ul>
             } 

2番目のエラーは次のエラーを返します...

コンパイラ エラー メッセージ: CS0103: 名前 'パートナー' は現在のコンテキストに存在しません。

Razor のコード ミキシング ルールに従うのは難しいと思います。正規の説明を提供するリンクは高く評価されます。

セス

4

3 に答える 3

10

foreachの前にを付ける必要があります@:

@foreach (var partner in Model)

<ul>Razor をマークアップ モードに戻すため、 を追加し@て、コード ブロックに戻るように指示する必要があります。

于 2012-05-06T19:26:28.093 に答える
3

@foreach2 番目の例では、マークアップからコードに移行する必要があります。

if最初の例では、ブロックの直接の内容が既にコードであるため、そうしません。

于 2012-05-06T19:26:21.943 に答える
2

これを参考にしてください。このような問題に直面することはもうありません。:)

于 2012-05-06T19:44:33.943 に答える