【问题标题】:Passing dynamic Id to AjaxActionLink ASP.NET MVC 5将动态 ID 传递给 AjaxActionLink ASP.NET MVC 5
【发布时间】:2014-08-21 20:57:49
【问题描述】:

我的视图中有 ajax 操作链接:

@Ajax.ActionLink("ShowWithFilter", 
                 "ShowCompanyData", 
                 null, 
                 new { StateId = "x", CityId = "y" },
                 new AjaxOptions
                 {
                    HttpMethod = "GET", // HttpMethod to use, GET or POST
                    UpdateTargetId = "PartialView", // ID of the HTML element to update
                    InsertionMode = InsertionMode.Replace, // Replace the existing contents
                    OnBegin = "setParameters",

                 }, new { id = "linkFilter" }
                 )

我的页面上有下拉控件。用户可以选择下拉菜单,点击上面的 ajax 链接后,下拉菜单中的参数应发送到控制器操作。

在我的 javascrip 文件中:

$("#linkFilter").click(function (e) { 
    if ($("#ddState").prop("disabled", false)) {   
        $('#linkFilter').attr('href', function () {      
            return this.href.replace('x', $('#ddState').val());
        });
    }
    else if ($("#ddCity").prop("disabled", false)) {
        return this.href.replace('y', $('#ddCity').val());
    }

});

单击时我想将参数添加到 ajax 操作链接。所以点击事件被识别所以这没关系但是“return this.href.replace('x', $('#ddState').val());”这行代码说“无法读取未定义的属性替换”。请帮忙:/

【问题讨论】:

    标签: jquery asp.net-mvc html.actionlink


    【解决方案1】:

    使用 jQuery 而不是 @Ajax.ActionLink 会更好。

    if ($("#ddState").prop("disabled", false)) 语句没有意义,因为它设置属性disabledfalse 并始终返回true。由于不清楚您尝试使用此语句做什么,我假设您想将一个或其他值发送到您的控制器。

    linkFilter 元素更改为按钮或其他元素(如果您想要的话,可以将样式设置为看起来像链接)

    $("#linkFilter").click(function (e) {
      var url = '@Url.Action("ShowCompanyData")';
      // set defaults
      var stateID = null;
      var cityID = null;
      // set value based on disabled state of the dropdowns
      if ($("#ddState").is(':disabled')) {
        cityID = $("#ddState").val();
      } else if ($("#ddState").is(':disabled')) {
        stateID = $("#ddState").val();
      }
      $.get(url, {StateId: '', CityId: ''}, function (data) {
        // update view
        $('#PartialView').html(data);
      })
    });
    

    【讨论】:

    • 是的,我做了这样的事情并让它工作......坦克:)但是,我仍然无法弄清楚为什么当我使用 ajax 时出现“无法读取未定义的属性替换”操作链接:/ 仍然,再次感谢
    猜你喜欢
    • 2018-02-18
    • 2016-02-21
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多