【发布时间】:2018-12-13 09:59:38
【问题描述】:
我有一个 ASP.NET MVC 视图。在我的视图中,我想发出 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 向控制器发布类型为: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 应该将什么类型的模型发布到控制器?
【问题讨论】:
标签: ajax asp.net-mvc asp.net-mvc-4 asp.net-ajax