2010-11-11 9 views
5

Tengo una función de JavaScript como esta en mi aplicación ASP.NET MVC 3.@ símbolo en el bloque de JavaScript

function Foo() 
{ 
    var url = "@Url.Action("MyAction", "MyController")"; 
    alert(url); 
} 

estoy confundido en cuanto a por qué el código anterior funciona . Esperaba tener que escapar @Url.Action(...) dentro de las etiquetas <%=?

Respuesta

4

Ésta es una característica del motor de vistas Razor - que maneja el cambio entre HTML/Javascript y su punto de vista del lado del servidor código para que no tenga que escapar en la mayoría de los casos.

Ver el blog de Scott Guthrie en él: http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

+1

Ah, ese es el enlace que estaba buscando. Google falla – Phil

2

Parece que está utilizando el nuevo motor de vista Razor.

Editar: Estoy asumiendo la función de JavaScript que está escrito dentro de un archivo de vista (cshtml)

+0

De hecho lo soy, ¿es esta una característica? – Senkwe

+0

http://geekswithblogs.net/wildturtle/archive/2010/10/11/exploring-asp.net-mvc-3-razor-view-engine-and-syntax-highlighting.aspx – Phil

+0

Guau, qué agradable sorpresa entonces :-) Tropecé con eso puramente por accidente a través de un error tipográfico! Gracias. – Senkwe

0

Sí, funciona en páginas de vista de afeitar, pero el IntelliSense no funcionan dentro de la "" o '' como vista formulario web motor.

Cuestiones relacionadas