EDITAR
que no escribe los recursos localizados necesarias para un objeto de JavaScript (hash) y luego usarlo para la búsqueda de los objetos creados de forma dinámica. Creo que esto es mejor que volver al servidor para las traducciones. Esto es similar a agregarlo a través de viewdata, pero puede ser un poco más flexible. FWIW, podría considerar los recursos de localización como parte de la Vista, no como parte del controlador.
En la Vista:
<script type="text/javascript"
src='<%= Url.Content("~/Resources/Load?translate=Close,Open" %>'></script>
lo que seria algo así como:
var local = {};
local.Close = "Close";
local.Open = "Open";
Sin argumentos Sería salida de todo el hash de la traducción. El uso de argumentos le da la posibilidad de personalizarlo por vista.
A continuación, utilizarlo en sus archivos JavaScript como:
$(function(){
$('#button').click(function() {
$("<img src=... title='" + local.Close + "' />")
.appendTo("#someDiv")
.click(function() { ... });
});
});
En realidad, no soy muy exigente en cuanto a mantener mi código JavaScript de mis puntos de vista, siempre y cuando el código JavaScript se localiza en un contenedor . Normalmente estableceré mi página maestra con 4 áreas de contenido: título, encabezado, principal y scripts. El título, el encabezado y el principal van donde usted esperaría y el área de scripts va en la parte inferior del cuerpo.
Puse todos mis JavaScript incluidos, incluidos los de viewusercontrols, en el contenedor de scripts. El código JavaScript específico de la vista viene después de los includes. Refactorizo el código compartido a los scripts según sea necesario. He pensado en usar un método de control para clasificar secuencias de comandos, es decir, incluir varias secuencias de comandos con una única solicitud, pero todavía no he llegado a eso.
Esto tiene la ventaja de mantener el código JavaScript separado para facilitar la lectura, pero también me permite insertar fácilmente el modelo o ver los datos en el código JavaScript según sea necesario.
"Quiero javascript para separarse de puntos de vista." == "También es una buena práctica mantener tu javascript separado de tu marca". <= y ese es el problema por el cual <%= foo %> no funcionará. –
Por cierto, ¿por qué es preferible adjuntar el controlador onclick en la carga de JS? –
Me perdí la parte "generada por JS" de su pregunta, simplemente escaneada justo encima. En este caso, consideraría escribir los datos localizados en la vista y hacer que javascript los cargue desde un objeto local. Reescribirá – tvanfosson