我试图通过视图中的ajax调用MVC控制器。我的javascript是:
$.ajax({
url: '@Url.Action("ItemsCountActionViewPartial", "Catalogue-Item-Items")',
type: "Post",
$('@Model').serialize(),
dataType: 'json',
success: function (result) {
$("#totalResults").html(result);
},
error: function () {
alert("error");
}
})
正在调用控制器,但是我试图通过控制器的剃刀模型未正确传递。在控制器中它是null但我已经验证它在我进行ajax调用时不为null。控制器代码是:
[HttpPost]
public ActionResult ItemsCountActionViewPartial(CatalogueFindHelper finder)
{
HttpCookie cookie = Request.Cookies.Get(LibraryGeneral.DEFAULT_LOCATION_COOKIE);
int? val = cookie == null ? null : (int.Parse(cookie.Value) as int?);
int numResults = 0;
using (LibraryEntities db = new LibraryEntities())
{
foreach (CatalogueView view in finder.CatalogueViews)
numResults += db.Items.Count(x => x.CatalogueItemID == view.CatalogueItemID);
foreach (VirtualKitsView view in finder.VirtualKitViews)
numResults += db.VirtualKitItems.Count(x => x.VirtualKitID == view.VirtualKitID);
}
return PartialView(numResults);
}
不确定我在这里做错了什么,但是非常感谢任何帮助。
更新:当我将数据更改为数据时:$('@Model').serialize()
它不再作为null传递,但模型为空。我更新了我的代码以反映这一变化。