如何在asp.net mvc

时间:2016-09-15 14:16:29

标签: jquery json ajax asp.net-mvc ajax-request

我是ajax的新手。

我试图从我的控制器中的方法获取数据,我已经编写了ajax代码但似乎没有完成工作(不从控制器中提取数据)也许我在ajax的控制器中遗漏了一些东西请求。

我有两个下拉菜单,我正在尝试根据另一个下拉列表的选择填充一个下拉框,我正在尝试从我的控制器中的一个方法更正数据,我不知道如何。

我真的很感激这方面的一些指导或帮助

谢谢

 public ActionResult ptdrFilter(int id)
    {
        //IUnitOfWork uow = DataAccess.GetUnitOfWork();
        using (ManageProductTemplate ptLogic = new ManageProductTemplate(ref uow))
        {
            List<ProductTemplate> currentpt = ptLogic.GetBy(x => x.ProductTemplateID == id);

            List<string> pt = new List<string>();
            foreach (var item in currentpt)
            {
                pt.Add(item.DistributionRule.Name);

            }
            return Json(new {

                pt


            } , JsonRequestBehavior.AllowGet);
        }
    }

 function drFilter() {

    $.ajax({
        type: "json",
        data: {id: 1},
        url:"/ptdrFilter/",
success: function(result) {
    drFilter(result);
}
    });
        var dataInJSONForm = JSON.stringify(sampleData);
        var datainJSObjectForm = JSON.parse(dataInJSONForm);

        $('#dd1').on('change', function (e) {
            var valueChosenInddl2 = $(this).val();
            var options = datainJSObjectForm[valueChosenInddl2];



            var $subselect = $('#subselect');
            $subselect.children().detach();
            for (var property in options) {
                $subselect.append($('<option>', { value: property, text: options[property] }));

}

1 个答案:

答案 0 :(得分:0)

这里有几个明显的问题:

1)

function drFilter() {

  $.ajax({
    type: "json",
    data: {id: 1},
    url:"/ptdrFilter/",
    success: function(result) {
     drFilter(result);
    }
 });
...

将产生无限循环。当ajax调用完成(成功)时,它再次调用drFilter(),它将立即再次进行ajax调用,依此类推。

2)我认为它失败了因为URL错了。在评论中提到了404 Not Found错误 - 这意味着它到达了错误的URL。 MVC使用URL路由,因此最好让MVC为您生成URL。您可以使用HTML帮助程序执行此操作,如下所示:

url: @Url.Action("ptdrFilter")

您的浏览器还报告未定义“sampleData”变量。在您发布的代码中没有任何地方显示在您尝试将其传递给JSON.stringify()方法之前定义或填充此变量。我猜也许这是测试你尚未删除的代码。