【问题标题】:How to Customize Hyperlinks on Client Side in ASP.NET MVC如何在 ASP.NET MVC 中自定义客户端的超链接
【发布时间】:2009-06-10 14:51:49
【问题描述】:

我需要能够用 Javascript 或 JQuery 做两件事,而不涉及第三方开源库:

  1. 使用 jQuery 或 Javascript 函数来填充链接的 HREF 属性。

  2. 对文本框或组合框执行 HTTP Get 或 Post 操作 OnUpdate(使用上述 javascript 函数指定 HTTP 目标)

最终结果将是发布到控制器的超链接,看起来类似于:

http://mydomain/addresses/1?order=name&state=ca

控制器将返回一个新页面,按名称排序并在加利福尼亚州进行过滤。

建议?

【问题讨论】:

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


    【解决方案1】:

    如果您有 2 个文本框和一个带有 url 的超链接,请尝试以下操作:

    $(document).ready(function() {
        $('a#yourHyperLinkId').click(function(event) {
            event.preventDefault();
            var url = $(this).attr('href');
            var order = $('input#order').val();
            var state = $('input#state').val();
            $.get(url, { order: order, state: state }, function(response) {
                $('div#yourDivForResponse').html(response);
            });
        });
    });
    

    【讨论】:

    • 谢谢,eu-ge-ne。这正是我想要的。
    【解决方案2】:

    我不确定我是否关注...

    如果要使用 JQuery 进行回发,为什么还需要填写链接的 HREF?

    【讨论】:

    • 是的 - 只需创建 url 并重定向窗口以进行完整回发,或使用 JQuery 的 Ajax 调用回发数据并更新相关元素。听起来您说 URL 会因用户的操作而异?如果不是这种情况,则直接在服务器端呈现 URL。
    【解决方案3】:
    1. 这里回答的一些要素:Passing Javascript variable to <a href >

    2. 如果您想在窗口中加载控制器响应,您可以使用带有精心设计的动作的表单。如果没有,您可以使用 iframe 作为表单的 target 或使用 XHR 对象。无论您选择哪种解决方案,您都会将其链接到文本框或组合框的 onchange 事件。

    【讨论】:

    • 我喜欢 document.getElementById("link2").setAttribute("href",strLink);
    【解决方案4】:

    感谢小伙伴们为我指明了正确的方向。

    #1 的答案:

    document.getElementById("link2").setAttribute("href",strLink); 
    

    回答#2(或多或少):

    $("#mySelect").change(function() {  
      document.location = this.value;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2014-11-03
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多