【问题标题】:How do I include ul tags inside of a razor code block?如何在 razor 代码块中包含 ul 标签?
【发布时间】:2012-05-06 19:23:21
【问题描述】:

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

        <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>
             } 

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

编译器错误消息:CS0103:名称“合作伙伴”在当前上下文中不存在。

我发现 Razor 的代码混合规则很难遵循。任何给出规范解释的链接将不胜感激。

赛斯

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 razor c#-3.0


    【解决方案1】:

    您需要在foreach 前加上@

    @foreach (var partner in Model)
    

    &lt;ul&gt; 正在将 Razor 设置回标记模式,因此您需要添加 @ 以告诉它返回到代码块。

    【讨论】:

    • 感谢您不仅告诉我怎么做,而且还解释了我做错了什么。
    【解决方案2】:

    在第二个示例中,您需要@foreach 才能从标记转换为代码。

    在第一个示例中,您不需要,因为 if 块的直接内容已经是代码。

    【讨论】:

      【解决方案3】:

      你应该关注this作为参考,你再也不会遇到这样的问题了。 :)

      【讨论】:

      • 感谢您的链接。正是我需要的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2015-04-18
      • 2013-06-05
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2014-08-08
      相关资源
      最近更新 更多