Al usar Visual Studio 2012, en una página Razor view, en la sección de JavaScript, obtengo lo que creo es una batalla entre la sintaxis de Razor frente a la sintaxis de JavaScript. En particular, el punto y coma final en la sección del script está marcado por intellisense y se entrega una advertencia del compilador (no error):Razor/JavaScript y punto y coma posterior
'Advertencia 13 Error de sintaxis'.
Si lo elimino, entonces obtengo una recomendación de terminación de extracto (ReSharper en este caso, pero solo una buena práctica).
<script type="text/javascript">
$().ready(function(){
var customer = @Html.Raw(ViewBag.CustomerJSON); // <- Razor (I think) doesn't like this semicolon
});
</script>
¿Esto es un error en Razor? Si es así, ¿hay alguna manera de reescribir esto para evitar este problema?
Si eres realmente anal con eso ... como algunas personas 'pista' ... puedes hacer algo como '@ Html.Raw (ViewBag.CustomerJSON) + '';' Debido a que el validador de JavaScript espera números enteros o texto. No hace absolutamente nada al resultado, pero elimina el garabato rojo. 'Advertencia: Usar esto en exceso podría quemar los ojos más adelante. – ppumkin
Otra solución provisional:' var data = [@ Json.Encode (someObject)] [0]; 'que funciona para llamadas C# que devuelven objetos JSON, no cadenas o números. – Drewmate
No aconsejaría crear matrices para cada valor de javascript simplemente para aliviar un problema de IDE. – crush