使用参数在JQuery中构建链接的最佳方法

时间:2010-03-16 15:16:31

标签: c# jquery asp.net-mvc

对所有人来说,JQuery和MVC以及webdevelopment都是新手。 我现在正在努力实现这一目标,并要求提出一些建议:

我基本上是在尝试构建一个包含4个输入元素和1个输出的过滤器。

我的页面中有4个选择(下拉)元素。一旦其中一个被更改,我需要构建一个href并获得带有返回值的局部视图。

现在我的问题是,如果我应该尝试在select元素中构建href,或者如果我可以在jquery中执行一次,并且不必重复代码。我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

你可以用jQuery以你想要的模块方式做一次。类似的东西:

$('select').bind('change',function(e){
    // Our select changed. Send it's selected option's value onwards...
    getView(this.options[this.selectedIndex].value);
});

然后,在其他地方:

function getView(url){
    $.ajax( url : '/your/url/' + url, success : function(){ }, error : function(){ });
}

基本上,将URL片段存储为下拉列表中选项的值。观察更改事件并触发相应的请求。您可以根据需要将其设置为模块化(我将URL存储为常量,将整个事件作为模块等),但这是一个很好的起点。

答案 1 :(得分:1)

每个下拉列表应为class="FilterSelect"或类似

当它们中的任何一个发生变化时,它将触发对需要在所有选择可用的上下文中指定的URL的请求。

以下伪代码应该提出一个想法:

$('.FilterSelect').change(function()
{
    var data = {} // you need to get the selected items of each dropdown somehow
    $.get($(this).parents('#FilterContainer').attr('href'), data, function(response)
    {
        $('#ContentArea').html(response);
    }
});

请注意:您不应该在jQuery中构建URL,因为客户端逻辑不应该关注构建与服务器端路由相对应的URL所需的规则。

....&还要注意:我不知道这是否是有效的jQuery! .parents('#FilterContainer')

相关问题