使用Ajax调用控制器

时间:2015-04-15 18:02:55

标签: javascript ajax model-view-controller

我试图通过视图中的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传递,但模型为空。我更新了我的代码以反映这一变化。

0 个答案:

没有答案