Saltar al contenido

Pasar datos de la vista parcial a su vista principal

Solución:

Puede compartir el estado entre vistas usando HttpContext.

@{
    this.ViewContext.HttpContext.Items["Stuff"] = "some-data";
}

y luego:

@{ var result = Html.Partial("_PartialView"); }

<div id="@this.ViewContext.HttpContext.Items["Stuff"]">
    @result
<div>

Excepto que el ejemplo que ha mostrado en su pregunta:

<div id="@someDataFromPartialSomehow">
    @Html.Partial("_PartialView")
</div>

está intentando utilizar el someDataFromPartialSomehow incluso ANTES DE invocando la visión parcial que obviamente es imposible.

También tenga en cuenta que lo que está tratando de lograr es un mal diseño. Si una vista parcial solo puede funcionar en el contexto de algún padre específico, es posible que deba reconsiderar su separación de vistas. Las vistas parciales es algo que debe ser INDEPENDIENTE y REUTILIZABLE, sin importar en qué contexto se coloque. Si asume cosas sobre el padre anfitrión, entonces hay un problema de diseño serio aquí.

Tengo una sugerencia para usted.

Coloque campos de entrada ocultos en la vista parcial y consígalos desde javascript.

Por ejemplo: en _PartialView.cshtml

<input type="hidden" id="someDataFromPartialSomehow" value="5" />

En tu vista

<script>
$(document).ready(function(){
   var someDataFromPartialSomehow = $("#someDataFromPartialSomehow").val();
});
</script>

Tenga en cuenta que debe escribir la función js dentro de la función de preparación del documento porque la vista parcial debe estar completamente cargada.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *