I created following custom ActionResult
which returns multiple partial views.
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);
}
}
}
And then I use it as follows:
return new MultiplePartialViewsResult(
PartialView("~/Views/RowSumView.cshtml", new List<double>() { 1.0 }),
PartialView("~/Views/ColumnSumView.cshtml", new List<double>() { 2.0 }));
But if I place breakpoint in MultiplePartialViewsResult
's constructor I see that model in both cases equals 2.0
. It overrides all models with the last model specified in a array.
Try to create couple PartialViews in method and assign it to variable. Then you will notice they all share equivalent model.