asp.net-mvc-4 - sintaxis - razor insert c# code
¿Hay algún beneficio al usar @ Url.Content("~") (2)
Soy nuevo en MVC4 / razor2, y creo que entiendo el beneficio general de usar @Url.Content
y @Url.Action
: si mi enrutamiento o directorio virtual cambia, magic-url-strings se procesan correctamente.
Estoy mirando un código heredado Javascript-with-razor en una vista que está salpicada con ''@Url.Content("~")''
. Esto se traduce como ''/''
- o, raíz del sitio web. ¿Cuál ... siempre sería el caso, no?
¿O hay alguna situación en la que esto se pueda representar de manera diferente?
Nota: no es ~/
- simplemente simple.
Estoy planeando extraer las llamadas de la máquina de afeitar a las funciones auxiliares, y mover el bloque principal de JavaScript a un archivo externo (para despegar y "limpieza" general). No necesito "arreglar" nada de lo que sucede actualmente, pero me gustaría entenderlo mejor.
Url.Content asigna la tilde a la raíz de la aplicación. La raíz de la aplicación no es lo mismo que la raíz del sitio web.
De este artículo http://msdn.microsoft.com/en-us/library/system.web.virtualpathutility(v=vs.110).aspx :
Una ruta virtual absoluta comienza con la barra diagonal literal (/). Una ruta virtual relativa es relativa al directorio raíz de la aplicación, si es solo una tilde (~) o comienza con la tilde y una barra invertida doble (~ /) o la tilde y una barra diagonal (~ /). Hacer una ruta de acceso virtual hace que la ruta sea independiente de la aplicación.
A partir de MVC4 Url.Content no es necesario para convertir la tilde a la raíz del aplicativo: http://beletsky.net/2012/04/new-in-aspnet-mvc4-razor-changes.html
Parece que hay dos preguntas separadas, así que las abordaré individualmente.
¿Hay algún beneficio al usar @ Url.Content ()
A partir de Razor 2 casi no hay razón para usarlo.
Los siguientes son equivalentes (para cualquier raíz de aplicación ):
<a href="@Url.Content("~")">Root</a>
y
<a href="~">Root</a>
En segundo lugar
¿Cuál es el ~ (tidle)
slash (/) vs tilde slash (~ /) en la ruta de la hoja de estilo en asp.net