【问题标题】:JavaScript function not calling ActionResultJavaScript 函数未调用 ActionResult
【发布时间】:2013-06-11 10:01:47
【问题描述】:

我的 Razor 页面上有一个 DropDownList

@Html.DropDownListFor(Model => Model.Clubs, new SelectList(ViewBag.Clubs as System.Collections.IEnumerable, "Id", "Name"),
                          "-- Select a club --",
                          new { id = "ddlClubs" })

使用来自 javascript 函数的 Json 调用填充另一个 DropDownList:

$(function () {
  $("#ddlClubs").change(function () {
  var clubid = $(this).val();
  $.getJSON("../Administration/LoadCompsByClubId", { clubid: clubid },
    function (compsData) {
      var select = $("#ddlComps");
      select.empty();
      select.append($('<option/>', {
      value: 0,
      text: "-- select a competition --"
  }));
  $.each(compsData, function (index, itemData) {
    select.append($('<option/>', {
      value: itemData.Value,
      text: itemData.Text
    }));
  });
});

此 DropDownList 已正确填充。

@Html.DropDownList("Id", new SelectList(Enumerable.Empty<SelectListItem>(),
                    "Id", "Name"),  "-- select a competition --",
                    new{
                        id = "ddlComps",
                        data_url = Url.Action("GetTeams", "Administration")
                    })

现在当我调用 change 函数将 ActionResult 加载到 div 中时,关联的 GetTeams 操作不会被调用。

 $(function () {
    $('#ddlComps').change(function () {
        var url = $(this).data('url');
        var value = $(this).val();
        $('#result').load(url, { id: value });

    });
});

谁能看到我哪里出错了?打赌它像往常一样简单......

【问题讨论】:

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


    【解决方案1】:

    如果你写下这个返回其他下拉值的动作是什么样的,那就太好了。对我来说,听起来你没有返回 JsonResult(扩展 ActionResult),但我不能说的比我看到的更多。

    【讨论】:

      【解决方案2】:

      如果您在 AdministrationController 上调用 LoadCompsByClubId 方法,似乎以下 URL 需要一些有趣的路由配置才能路由到正确的控制器。

      $.getJSON("../Administration/LoadCompsByClubId", { clubid: clubid }

      您确定以上内容不应该只是 mvc 控制器操作的默认设置。

      $.getJSON("/Administration/LoadCompsByClubId", { clubid: clubid }

      如果您查看 fiddler 或浏览器调试器中的 HTTP 流量,您是否看到服务器的请求和响应?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-24
        • 2023-03-18
        • 1970-01-01
        • 2017-08-18
        • 1970-01-01
        • 2012-06-26
        相关资源
        最近更新 更多