c# - una - render partial view mvc 5 example
ASP MVC Definir la sección en vista parcial (2)
Como indica el título, quiero definir una sección en una vista parcial.
Mi código con el que he probado es el siguiente:
Controlador:
public ActionResult Test()
{
return View();
}
public ActionResult PartialTest()
{
return PartialView("_PartialTest");
}
Prueba.cshtml:
@{
ViewBag.Title = "Test";
}
<h2>Test</h2>
@Html.Action("PartialTest")
_PartialTest.cshtml:
<p>partial Test</p>
@section scripts {
<script type="text/javascript">
$(document).ready(function() {
alert("Test");
});
</script>
}
Colocar los scripts
la sección en el Test.cshtml funciona bien, por lo que el problema no está en el diseño.
Alguien sabe cómo hacer esto?
Las vistas parciales no admiten la etiqueta @section
. Debe agregarlos en la vista que hace referencia a la vista parcial. Vea esta pregunta para obtener más información: inyectar contenido en secciones específicas desde una vista parcial ASP.NET MVC 3 con Razor View Engine .
Básicamente, todo se reduce al hecho de que la vista principal que hace referencia a una parcial debería ser responsable de incluir Javascript, no la vista parcial en sí.
Sé que esta pregunta está super pasada de moda, pero para cualquier persona que todavía se esté preguntando (como estaba):
Realmente puedes solucionar este problema cambiando la parte de @section scripts { }
en tus vistas parciales a esto:
@using (Html.BeginScriptContext())
{
Html.AddScriptBlock(
@<script type="text/javascript">
//rest of script
);
}
Esto le permitirá tener un script en su vista parcial y lograr esa estructura similar a un widget. ¡Espero que esto ayude!