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