【问题标题】:Ajax function to fetch the selected value from the dropdown and passing that value to a function in ControllerAjax 函数从下拉列表中获取选定的值并将该值传递给 Controller 中的函数
【发布时间】:2012-04-12 18:49:33
【问题描述】:

我正在 MVC3 中创建一个应用程序,其中我有很多下拉菜单 现在,根据在第一个下拉列表中选择的值,填充第二个下拉列表。 我需要为此编写 Ajax,但我很难做到。

我有我的第一个下拉菜单“选择课程”,现在选择哪一门课程借助该特定课程 ID 从数据库中选择相应的状态。

例如,如果课程是“MCA”,则州下拉菜单必须填充马哈拉施特拉邦、拉贾斯坦邦等州。

我为 Ajax 尝试了以下代码,但它不起作用并给我一个错误

  $("#Course").change(function () {
        var Courseid = $("#Course").val();
        var urlCourselocation = '@Url.Action("FetchstatebyCourse")';
        $.ajax({
            type: "POST",
            url: urlCourselocation,
            data: { id: Courseid },
            success: function (data) {
                          $('#State').empty();
                          $('#State')
                        .append($('<option>', { value: "0" })
                        .text("-- Select State --"));
                    $.each(returndata, function (key, value) {

                    $('#State')
                        .append($('<option>', { value: value.Value })
                        .text(value.Text));
                });
               }
        });
    });

在控制器中我写了以下函数:

 public ActionResult FetchHobbyDetailByHobbyId(int Id)
    {
        LearnerService learnerservice = new LearnerService();
        /* Here is some Code to fetch the state id from the database*/
        ICollection<ProvincialState> state = learnerservice.FetchStateByStateid(stateid);
        ViewBag.State = state;

        if (HttpContext.Request.IsAjaxRequest())
            return Json(new SelectList(
                            state,
                           "ProvincialStateID",
                           "ProvincialStateName"));
        return View();
    }

如果我错了,请帮助我并纠正我。

【问题讨论】:

  • 错误是什么,是在服务器端还是客户端?
  • @GregB 嘿,抱歉,它没有给我错误,但是当我选择“课程”时,它不会填充状态下拉列表中的任何内容:“--选择状态---”
  • 如果您安装了 firebug,我会查看帖子响应并查看您返回的数据类型(可能为空)。此外,我认为您可能只想考虑返回 Json(state) 并查看它为您提供了什么。此外,单步执行服务器端代码并​​确保它返回一些内容
  • @GregB 嘿,这可能会让你感到震惊,但在调试时我可以看到它返回的内容,这正是我想要获取的,但返回的值没有显示在下拉列表中

标签: asp.net-mvc asp.net-mvc-3 jquery drop-down-menu


【解决方案1】:

哦,我想我看到了这个问题...... 不应该:

 $.each(returndata, function (key, value) {

成为

 $.each(data, function (key, value) {

【讨论】:

  • 嘿,谢谢,确实是个愚蠢的错误……现在它可以工作了!!
猜你喜欢
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多