У меня есть ASP.NET MVC View. В моем представлении я хочу сделать запрос AJAX Post для обновления PartialView внутри представления.
Это моя модель:
public class HomeListViewModel
{
public MainQueryViewModel MainQuery { get; set; }
// other properties
}
А это мой вид (у которого есть PartialView):
@model MyNameSpace.HomeListViewModel
@using (Ajax.BeginForm("List", new AjaxOptions { UpdateTargetId = "browsePartialView", HttpMethod = "Post" }))
{
@Html.AntiForgeryToken()
<div id="browsePartialView">
@Html.Partial("_MainQuery", Model.MainQuery)
</div>
}
Теперь это моя проблема: я хочу, чтобы AJAX POST отправлял объект типа: HomeListViewModel
в контроллер, но AJAX отправляет объект типа MainQuery
.
Это мое действие контроллера:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult List(HomeListViewModel HomeListViewModel)
{
var myModel = HomeListViewModel; // <-- an empty model is passed in
// some action
}
Если я изменю тип параметра на: MainQuery
, тогда он будет работать нормально:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult List(MainQuery MainQuery)
{
var myModel = MainQuery; // <-- all ok
// some action
}
Есть ли способ сообщить AJAX, какую модель он должен публиковать на контроллере?