Я создал следующий пользовательский ActionResult
, который возвращает несколько частичных представлений.
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);
}
}
}
И затем я использую его следующим образом:
return new MultiplePartialViewsResult(
PartialView("~/Views/RowSumView.cshtml", new List<double>() { 1.0 }),
PartialView("~/Views/ColumnSumView.cshtml", new List<double>() { 2.0 }));
Но если я помещаю точку останова в конструктор MultiplePartialViewsResult
, я вижу, что модель в обоих случаях равна 2.0
. Он переопределяет все модели с последней моделью, указанной в массиве.
Попробуйте создать пару PartialViews в методе и присвоить его переменной. Тогда вы заметите, что все они имеют эквивалентную модель.