2010-11-11 24 views
22

Entonces, una pregunta simple realmente. :)ASP.NET MVC 3 Sintaxis Razor - Casting

Tenía este siguiente código con ASPX Vista Motor:

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

que hace Los Ángeles

Si hago esto con Razor Ver Motor:

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

Se hace esto:

(realmente enorme nombre del objeto debe ser .toString) .Nombre

Así, el resaltado se corta en Ubicación), y se está tratando el código .Nombre tengo (que es una propiedad en un objeto City) como HTML puro.

¿Por qué se considera el ) como el final del bloque de código Razor?

¿Alguna idea?

Además, ¿hay una referencia Razor que tenga todas las palabras clave y sintaxis? (Me tomó un tiempo darme cuenta de que <% Import Namespace es @using con Razor).

Gracias Chicos!

+2

@Downvoter - cuidado para explicar por qué? – RPM1984

Respuesta

40

¿Funciona <strong>@(((City)Model.Location).Name)</strong>? Creo que está pensando que la expresión contenida en @() está cerrada.

+0

Jaja, sí que funciona. Aclamaciones. Si tiene dudas, agregue otro soporte. :) Aceptará tu respuesta en 7 minutos. :) – RPM1984

+0

En cuanto a documentos, aún no he visto nada oficial. El blog de Gu es probablemente el mejor lugar actualmente http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx –

+0

Sí, lea eso. Sí, realmente necesitamos una fuente definitiva. Básicamente adiviné la declaración @using. :) – RPM1984

10

Además, para leer un poco más fácil ...

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