ASP.NET MVC 3 Razor Syntax - Casting

2019-01-25 03:24发布

问题:

So, simple question really. :)

I had this following code with ASPX View Engine:

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

Which renders Los Angeles

If i do this with Razor View Engine:

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

It renders this:

(really huge object name must be .ToString).Name

So, the highlighting cuts off at Location), and it's treating the .Name code i have (which is a property on a City object) as pure HTML.

Why is it deeming the ) as the end of the Razor code block?

Any ideas?

Also - is there a Razor reference which has all the syntax/keywords? (it took me a while to figure out that <% Import Namespace is @using with Razor).

Thanks Guys!

回答1:

Does <strong>@(((City)Model.Location).Name)</strong> work? I think it's thinking the expression contained within @() is closed.



回答2:

Also, for slightly easier reading...

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