如何自定义超链接在客户端在ASP.NET MVC

问题描述:

我需要能够做两件事JavaScript或JQuery的,不涉及第三方的开源库:如何自定义超链接在客户端在ASP.NET MVC

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

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

最终的结果将被超链接发布到控制器外观与此类似:

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

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

对此提出建议?

如果你有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); 
     }); 
    }); 
}); 

我不知道我跟......

为什么你需要填写,如果你打算使用jQuery无论如何做回发的链接的href?

+0

如果jQuery将做到这一点,我很冷静这一点。 – 2009-06-10 15:24:44

+0

是的,它会 - 只是创建网址,或者只是重定向窗口的完整回发,或者使用JQuery的Ajax调用回发数据和更新相关元素。 这听起来像你说的URL将取决于用户的行为而改变?如果不是这种情况,则直接在服务器端渲染URL。 – Leather 2009-06-10 15:36:07

  1. 答案这里的一些要素:Passing Javascript variable to <a href >

  2. 如果要加载的窗口控制器的响应,你可以使用形式,其制作的行动。如果没有,您可以使用iframe作为目标添加到表单或使用XHR对象。无论您选择哪种解决方案,都会将其链接到文本框或组合框的onchange事件。

+0

我喜欢document.getElementById(“link2”)。setAttribute(“href”,strLink); – 2009-06-10 15:28:57

感谢小伙子们指着我在正确的方向。

答案#1:

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

答到#2(或多或少):

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