Вот один способ, которым вы могли бы продолжить. Вы можете объединить две модели представления в уникальную модель представления и затем заставить действие контроллера вернуть представление, содержащее javascript, который вставит результаты двух представлений в разные элементы div.
Как всегда, начнем с просмотра моделей:
public class Model1 { }
public class Model2 { }
public class AggregatedModel
{
public Model1 Model1 { get; set; }
public Model2 Model2 { get; set; }
}
Затем контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult SomeAction()
{
var model = new AggregatedModel
{
Model1 = new Model1(),
Model2 = new Model2()
};
Response.ContentType = "text/javascript";
return PartialView(model);
}
}
Тогда соответствующий ~/Views/Home/Index.cshtml
просмотр:
<div id="menu">
@Html.ActionLink("click me", "SomeAction", "Home", new { id = "clickme" })
</div>
<div id="div1">bla bla content</div>
<div id="div2">bla bla content</div>
<script type="text/javascript">
$('#clickme').click(function () {
$.getScript(this.href);
return false;
});
</script>
Следующее представление ~/Views/Home/SomeAction.cshtml
:
@model AggregatedModel
$('#div1').html(@Html.Raw(Json.Encode(Html.Partial("Model1", Model.Model1).ToHtmlString())));
$('#div2').html(@Html.Raw(Json.Encode(Html.Partial("Model2", Model.Model2).ToHtmlString())));
и, наконец, два ~/Views/Home/Model1.cshtml
и ~/Views/Home/Model2.cshtml
просмотров:
@model Model1
<span>This is the contents for model1</span>
и
@model Model2
<span>This is the contents for model2</span>