无法使用jquery调用json结果

时间:2014-10-27 06:20:34

标签: javascript c# jquery json asp.net-mvc-4

c#和jquery,

我有两个下拉列表(类别和产品),并且必须根据类别更改产品列表。

  @Html.DropDownList("categoryId", new SelectList(ViewBag.Category, "Id", "Name"), "Select Parent Category", new { @class = "form-control categorydata" })      
  @Html.DropDownList("productId", new SelectList(ViewBag.Product, "Id", "Name"), "Select Product", new { @class = "form-control product-list" })      

我正在编写以下控制器以获取产品列表。它有效。

    [HttpGet]
    public JsonResult GetProducts(int categoryId)
    {
        int tot = new Products().Total;
        int cont = 1;
        Category cat = new Category(2);
        var products = new Products(cont, tot, cat);
       // ViewBag.products = new Products(1,new Products().Total,new Category(categoryId));
        return Json(products);
    }

我的jquery是,

$('.categorydata').change(function () {
    var selCat = $(".categorydata").val();
    var url = "~/Add/GetProducts";   
    if (selCat.length != 0) {           
        $.get(url, { id: SelCat }, function (data) {
            alert(data);
        });
    }       
});

这个jquery没有调用控制器,也无法获取数据。

请帮我解决。

3 个答案:

答案 0 :(得分:1)

您应该将json数据中的属性名称与action方法的参数名称保持一致。

$.get(url, { categoryId : SelCat }, function (data) {

参考SO Post

答案 1 :(得分:0)

你应该使用它。

return Json(products,System.Web.Mvc.JsonRequestBehavior.AllowGet);

答案 2 :(得分:0)

尝试输入dataType:' json'在你ajax电话: