Javascript 将数据传递给服务器端的jQuery函数

Javascript 将数据传递给服务器端的jQuery函数,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,鉴于我有: $("a.clickable").livequery('click', (function (e) { var values = $(this).attr('id').split('_'); $('#' + values[3]).load($(this).attr('href')); e.preventDefault(); })); 你看,我希望所有带有“clickable”类的链接都能导致ajax加载。然而,目标di

鉴于我有:

$("a.clickable").livequery('click', (function (e) {
         var values = $(this).attr('id').split('_');
         $('#' + values[3]).load($(this).attr('href'));
         e.preventDefault();
     }));
你看,我希望所有带有“clickable”类的链接都能导致ajax加载。然而,目标div是不同的,所以我只是简单地将它与一些其他数据一起放入Id的链接中: “link_value1_value2_targetDivId”

因此,我当前拆分id以获得一个值数组来处理。 我知道
*$(obj).data()*
,但我需要在服务器端传递一些东西


有没有一种方法可以在没有这种难看的id字符串解析的情况下实现这一点?ASP.Net/MVC顺便说一句。

不,你不能那样做。所有AJAX调用的触发都必须从客户端完成,尽管有一些方法可以使用反向AJAX或comet将一些数据从服务器推送到客户端,但这并不是您想要的。就你的情况而言,你必须做那丑陋的逻辑。但是如果不想解析它,可以将id作为数据/自定义属性存储在元素本身中,并使用它来代替解析

我希望我能理解这个问题-有几个,每个都与其div相关。单击后,相关div被操纵

我会怎么做。在服务器端(在aspx文件中),我将生成如下javascript代码:

var mapAIdToDivId = new Array();
<% foreach(Item i in MyDivAndACollection) { %>
  mapAIdToDivId['<%= i.AId %>'] = <%= i.DivId %>;
<% } %>

自定义属性是帮助我的关键字。我发现了一些很好的信息,在我的例子中,这比data()更好。谢谢你的回复。这是一种我已经尝试过的方法,但并不满意
$("a.clickable").livequery('click', (function (e) {
   $('#' + mapAIdToDivId[$(this).attr('id')]).load($(this).attr('href'));
   e.preventDefault();
}));