Me gustaría hacer uso de la sección (secuencia de comandos) en ASP .NET MVC, es decir:
@section script { <script>alert("hello");</script> }... pero también con vistas parciales , independientemente de si se usan dentro de una página completa o un contenido devuelto por AJAX.
Parece que MVC espera que devuelva vistas parciales directamente al hacer AJAX, devolviendo PartialViewResult . Pero si hago esto, la vista devuelta no tiene un diseño principal, que es donde se supone que debe estar la instrucción @RenderSection, lo que hace que los scripts declarados en las secciones del script no se representen.
(Por cierto, no se trata de si devolver scripts a través de AJAX es correcto, ese es otro tema)
Para solucionar este problema, pensé en agregar la instrucción @RenderSection en la vista parcial. Pero esto no funcionaría, porque no se garantiza que la vista parcial sea la vista raíz del contenido de retorno, pero también porque haría una llamada duplicada a @RenderSection , si la vista parcial se usara en una página completa.
Entonces, mi segunda solución es usar un diseño "vacío" para cada llamada AJAX que se supone que debe devolver contenido HTML, con solo dos instrucciones en ese diseño: @RenderBody para representar el árbol de vista parcial y @RenderSection para representar todos los scripts declarados en secciones de script dentro de las vistas parciales.
Esta segunda solución parece adaptarse perfectamente a mis necesidades. Sin embargo, parece que esto no está haciendo AJAX de la forma en que MVC espera que lo haga, por lo que me preocupa que esta idea me cause problemas en el futuro que no puedo prever en este día.
¿Te importaría darme tu opinión sobre esto?
Gracias.