【问题标题】:ASP.NET MVC 3 Razor Syntax - CastingASP.NET MVC 3 Razor 语法 - 铸造
【发布时间】:2010-11-11 06:39:25
【问题描述】:

所以,真的很简单的问题。 :)

我在 ASPX 视图引擎中有以下代码:

<strong><%: ((City)Model.Location).Name %></strong>

渲染 洛杉矶

如果我使用 Razor View Engine 进行此操作:

<strong>@((City)Model.Location).Name</strong>
                             ^
                             |
syntax highlighting stops here

它呈现这个:

(真正巨大的对象名称必须是.ToString).Name

所以,突出显示在 Location) 处中断,它正在处理我拥有的 .Name 代码(这是 City 上的属性> 对象)作为纯 HTML。

为什么将 ) 视为 Razor 代码块的结尾?

有什么想法吗?

另外 - 是否有包含所有语法/关键字的 Razor 参考? (我花了一段时间才弄清楚 &lt;% Import Namespace@using 与 Razor)。

谢谢各位!

【问题讨论】:

  • @Downvoter - 想解释一下原因吗?

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


【解决方案1】:

&lt;strong&gt;@(((City)Model.Location).Name)&lt;/strong&gt; 有效吗?我认为它认为@() 中包含的表达式已关闭。

【讨论】:

  • 哈哈,是的。干杯。如果有疑问,请添加另一个括号。 :) 将在 7 分钟内接受您的回答。 :)
  • 就文档而言,我还没有看到任何官方文件。顾的博客可能是目前最好的地方weblogs.asp.net/scottgu/archive/2010/10/19/…
  • 是的,请阅读。是的,我们真的需要一个明确的来源。我基本上猜到了@using 语句。 :)
  • @rpm 是的,这是预期的行为。如果“@”后面跟着一个“(”,那么表达式将总是在匹配的“)”处结束。解决方案是 John 所展示的,即在整个表达式周围添加一组额外的括号。
【解决方案2】:

另外,为了更容易阅读......

<strong>@( (Model.Location as City).Name )</strong>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多