2014-10-27 4 views
0

C# и JQuery,нельзя назвать результат JSON с помощью 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 это не называли контроллер, и он не может получить данные.

Пожалуйста, помогите мне решить эту проблему.

+0

Вместо '' ~/Add/GetProducts '' Использовать '@ Url.Action (" ActionName "," Controller ")' и Также вместо '$ .get' использовать' $ .getJSON' – Satpal

+0

Вы должны установить 'dataType' для json. – qtgye

+0

Как вы думаете, 'SelCat' должен быть' selCat' ?? –

ответ

0

Вы должны использовать это.

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

+0

, но jquery никогда не вызывает действие контроллера – shyama

+0

Вы использовали атрибут HttpGet, поэтому вы должны использовать перечисление JsonRequestBehavior.AllowGet. – Justin

0

Попробуйте поставить DATATYPE: «» JSON в вас АЯКС вызова:

1

Вы должны иметь имя свойства в JSon данных, как же, как и имя параметра метода действия.

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

См. SO Post.