【发布时间】:2011-03-27 16:36:19
【问题描述】:
当我使用局部视图 (MVC3/Razor) 时会出现这个问题,但我确信 - 很明显 Razor 语法问题,与局部视图没有直接关系。 所以 - 我有完整标记的部分视图 Menu.cshtml:
@model IEnumerable<SportsStore.WebUI.Models.NavLink>
@foreach(var link in Model)
{
@Html.RouteLink(link.Text, link.RouteValues);
}
没问题 - “父”视图将其称为 @{Html.RenderAction("Menu", "Nav");} 并且所有这些都像魔术一样工作。 但是,如果我将 Menu.cshtml 编辑为:
@model IEnumerable<SportsStore.WebUI.Models.NavLink>
@foreach(var link in Model)
{
Html.RouteLink(link.Text, link.RouteValues);
}
(请参阅 - Html.RouteLink 之前的 NO '@'!)都刚刚中断:现在 @{Html.RenderAction("Menu", "Nav");} 输出完全为空,没有一个 HTML 标记。
想知道——两段代码有什么区别?我假设 foreach 之前的 @ 也会自动“进入”并适用于 Html.RouteLink 吗?所以 - 我错了吗?
【问题讨论】:
-
您先生,是我的英雄。我正在处理看起来似乎相同的 SportsStore 文章,但我正在快速转换为 VB.Net。 C# 和 VB 之间的转换通常很简单,但使用 Razor 可能会很棘手。我在 RouteLink 没有创建输出时遇到了同样的问题,似乎 VB.Net 也有同样的缺陷(阅读:应用相同的逻辑)......我添加了
@并且一切都再次启动。谢谢@Smarty
标签: asp.net syntax asp.net-mvc-3 razor