如何在剃刀代码块中包含ul标签?

Set*_*man 5 asp.net asp.net-mvc razor c#-3.0 asp.net-mvc-3

为什么以下代码工作正常......

        <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>
Run Code Online (Sandbox Code Playgroud)

但是这段代码不能正常工作......

            @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>
             } 
Run Code Online (Sandbox Code Playgroud)

第二个错误1返回以下错误...

编译器错误消息:CS0103:当前上下文中不存在名称"partner".

我发现Razor的代码混合规则很难遵循.任何给出规范解释的链接都将受到赞赏.

赛斯

pju*_*ble 10

你需要foreach加上前缀@:

@foreach (var partner in Model)
Run Code Online (Sandbox Code Playgroud)

<ul>是在设置剃刀背来标记模式,所以你需要添加@告诉它重新回到代码块.