Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在razor代码块中包含ul标签?_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Razor_C# 3.0 - Fatal编程技术网

Asp.net 如何在razor代码块中包含ul标签?

Asp.net 如何在razor代码块中包含ul标签?,asp.net,asp.net-mvc,asp.net-mvc-3,razor,c#-3.0,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,C# 3.0,为什么下面的代码工作得很好 <ul class="searchList"> @if (Model.Count() > 0) { foreach (var partner in Model) { <li> @Html.ActionLink(@partner

为什么下面的代码工作得很好

        <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>
    @如果(Model.Count()>0) { foreach(模型中的var合作伙伴) {
  • @ActionLink(@partner.Name,“Details”,“partner”,new{id=partner.AID},null)
    @partner.Street
    @partner.CityStateZip
    @如果(!string.IsNullOrEmpty(partner.Phone)) { @合作伙伴电话
    } @(伙伴距离)英里
  • } }
但是这段代码并不好用

            @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>
             } 
@if(Model.Count()>0)
{
    foreach(模型中的var合作伙伴) {
  • @ActionLink(@partner.Name,“Details”,“partner”,new{id=partner.AID},null)
    @partner.Street
    @partner.CityStateZip
    @如果(!string.IsNullOrEmpty(partner.Phone)) { @合作伙伴电话
    } @(伙伴距离)英里
  • }
}
第二个错误返回以下错误

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

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


Seth

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


在第一个示例中,您没有这样做,因为
if
块的直接内容已经是代码。

您需要在
foreach
前面加上
@

@foreach (var partner in Model)

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

您应该遵循作为参考,您将永远不会再面临此类问题。:)

谢谢你不仅告诉我怎么做,而且还解释了我做错了什么。谢谢你的链接。正是我需要的。