Ho creato la seguente custom ActionResult
che restituisce più viste parziali.Custom ActionResult equivalente Modello per tutte le PartialView
public class MultiplePartialViewsResult : ActionResult
{
private const string Separator = "-";
private PartialViewResult[] _partialViews;
public MultiplePartialViewsResult(params PartialViewResult[] partialViews)
{
_partialViews = partialViews;
}
public override void ExecuteResult(ControllerContext context)
{
foreach (var partialView in _partialViews)
{
partialView.ExecuteResult(context);
context.HttpContext.Response.Output.Write(Separator);
}
}
}
E poi lo uso come segue:
return new MultiplePartialViewsResult(
PartialView("~/Views/RowSumView.cshtml", new List<double>() { 1.0 }),
PartialView("~/Views/ColumnSumView.cshtml", new List<double>() { 2.0 }));
Ma se metto punto di interruzione nel costruttore MultiplePartialViewsResult
s' vedo che il modello in entrambi i casi è uguale 2.0
. Sostituisce tutti i modelli con l'ultimo modello specificato in una matrice.
Provare a creare coppie PartialViews nel metodo e assegnarlo alla variabile. Quindi noterai che condividono tutti un modello equivalente.
Sì, è corretto. Se si sta tentando di restituire due 'model's a una vista, creare un' modello di vista' che contenga entrambi i modelli che si desidera inviare e rendere il modello della vista il nuovo 'ViewModel' –
Questo è il punto che sto cercando di restituire a molte visualizzazioni.Idea si basa su questo post in cui l'autore indica che i modelli possono essere distinti. https://www.simple-talk.com/dotnet/asp.net/revisiting-partial-view-rendering-in-asp.net-mvc/ – Maximus
Controllare le ultime cose? Dice di usare 'view model' condiviso da entrambi' partial view'. –