【问题标题】:Dropdown change not calling method asp.net mvc jquery下拉更改不调用方法 asp.net mvc jquery
【发布时间】:2014-04-02 17:54:17
【问题描述】:

首先,我使用此线程来了解我现在的位置,但我的情况遇到了困难。 ASP.NET MVC 3 DropDownList selectedindexchanged

我希望从一个下拉列表中选择一个值,然后该值将减少其下方下拉列表中的可用选项。

与上面的线程类似,我正在尝试使用 jQuery 来完成此操作:

    $('#Park').change(function () {
        var queryLink = 'Url.Action("GetBuildings")';
        if ($(this).val() != '') {
            queryLink += '?parkID=' + $(this).index;
        }
        $.get(queryLink, function (data) {
            $b = $('#Building');
            $op = $('<option></option>');
            $b.empty();
            $.each(data, function (value) {
                $b.append($op.attr("value", value));
            });
        });
    });

这里是 AvailabilityController 中的 GetBuildings 函数:

public ActionResult GetBuildings(int parkID)
    {
        var buildQry = from b in systemDB.Buildings
                        where b.ParkID == parkID
                        orderby b.BuildingName
                        select b.BuildingName;
        string temp = "";
        foreach (string b in buildQry)
        {
            temp += b + ';';
        }
        temp = temp.Substring(0, temp.Length - 1);
        string[] buildings = temp.Split(';');

        return View(buildQry);
    }

但是,当我更改“公园”下拉菜单的值时,什么也没有发生。 URL 没有变化,由于 Url.Action("GetBuildings") 我假设会附加“/GetBuildings?parkID=2”或类似的东西。

我不知道为什么它至少没有做一些事情,因为我已经使它尽可能类似于原始线程并且正常工作。

提前致谢!

【问题讨论】:

  • 在你的视图中看到 DropDownList 会很有帮助

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


【解决方案1】:

对我来说,这条线是问题:

var queryLink = 'Url.Action("GetBuildings")';

如果您在同一个视图上执行此操作,您可以通过以下方式解析 asp 标记(注意 @):

var queryLink = '@Url.Action("GetBuildings")';

但我不推荐这种方法,你比使用 html5 数据属性更干净

编辑: 使用数据属性示例。 向下拉元素添加如下属性:

<select id="Park" data-action-url='@Url.Action("GetBuildings")'>

在你的 js 上你会得到 url:

var queryLink = $(this).attr('data-action-url');

您也可以使用 $.get 数据参数将参数添加到 url:

$.get(queryLink, {parkID : $(this).val()}, function (data) {

【讨论】:

  • 我已将其更改为 '@Url.Action("GetBuildings")',不敢相信我遗漏了它......但它仍然没有改变任何东西,url 仍然没有t 更改下拉列表时更改?
  • 我打算研究一下你建议的更好的方法,但只是想在我尝试新方法之前让它工作,假设它仍然是导致问题的其他原因
  • GET localhost:50187/Scripts/modernizr-1.7.min.js 404(未找到)可用性:8 GET localhost:50187/Scripts/jquery-1.5.1.min.js404(未找到)可用性:7
  • 我没有调用这些,我有一个 1.4.1 的,我使用的是需要最新 jQuery 的功能吗?
  • 查看Views/Shared文件夹下的_layout,里面定义了js和css文件的引用。
猜你喜欢
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 2012-05-27
  • 2017-03-15
  • 2014-07-16
  • 1970-01-01
相关资源
最近更新 更多