ASP.NET MVC 3 Razor语法 - 强制转换

RPM*_*984 24 c# asp.net-mvc razor asp.net-mvc-3

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

我在ASPX View Engine中使用了以下代码:

<strong><%: ((City)Model.Location).Name %></strong>
Run Code Online (Sandbox Code Playgroud)

这使得 洛杉矶

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

<strong>@((City)Model.Location).Name</strong>
                             ^
                             |
syntax highlighting stops here
Run Code Online (Sandbox Code Playgroud)

它呈现:

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

因此,突出显示会在Location处切断,并且它将我拥有的.Name代码(它是City对象上的属性)视为纯HTML.

为什么推定的)为剃刀代码块的结束?

有任何想法吗?

另外 - 是否有一个具有所有语法/关键字的Razor参考?(我花了一段时间才弄明白<% Import Namespace@using剃刀).

多谢你们!

Joh*_*han 46

有用<strong>@(((City)Model.Location).Name)</strong>吗?我认为它认为其中包含的表达@()是封闭的.


Dea*_*mas 11

另外,阅读稍微容易一点......

<strong>@( (Model.Location as City).Name )</strong>
Run Code Online (Sandbox Code Playgroud)