2010-03-26 72 views
0

我试图创建一个ajax(后)事件,将按钮点击一个div中的表填充表中的一个表。。Ajax与jQuery和MVC2

我有一个组列表,当你点击一个组时,我希望表格“消失”,并且属于该组的成员“出现”。使用jQuery的阿贾克斯时...

当我按一下按钮,它正在寻找一个控制器,这并不存在,而不是引用的控制器

我的问题出现了。但是,我使用AREAS(MVC2),并且该区域名为Member_Select,其中控制器名为MemberSelect。当我点击按钮时,我得到一个404,说明它找不到控制器Member_Select。我已经研究过的链接按钮,它被设置在点击时至Member_Select,但这里的Ajax调用:

$.ajax({ 
    type: "POST", 
    url: '/MemberSelect/GetMembersFromGroup', 
    success: function(html) { $("#groupResults").html(html); } 
}); 

我还没有能够找到任何例子/在线帮助。 任何想法/建议/提示将不胜感激。

谢谢!

+0

你能张贴你的路线定义吗? – R0MANARMY 2010-03-26 15:15:58

+0

'/ MemberSelect/GetMembersFromGroup'是您期望的URL(请记住,这会告诉浏览器转到您网站的根目录) - 您在另一条评论中声明可以动态地在导航中创建链接 - 是导航链接相同?或者它是'/ Member_Select/MemberSelect/GetUsersFromGroup'?你的控制器上是否有AcceptVerbs属性,只接受Get请求? – 2010-03-26 16:41:03

回答

1

您是否尝试导航到/ MemberSelect/GetMembersFromGroup以查看您获得了什么? - 如果是404',那是因为路线无法与控制器/动作相匹配。

我还没有使用新的区域功能,但我不确定你得到的URL是否正确......我原以为它会是/AREANAME/MemberSelect/GetMembersFromGroup...but我可能是错的..!

+0

是的,我试着从区域名称开始,一直沿着链条,我试图创建网址“动态”与 <%= Url.Action(“Function”,“MemberSelect”,new { (这与我的主菜单上的导航链接相同,所以我知道它得到了正确的页面) – SlackerCoder 2010-03-26 15:19:39

+0

这似乎与链接的方式有关,被生成。从标记中移除href =“...”似乎可行。我想它确实与MVC2路线的方式有关? – SlackerCoder 2010-03-26 18:05:31

1

当我这样做,它工作得很好。我没有使用POST,也不知道AREAS的含义。

$("#item").autocomplete({ 
    source: function(req, responseFn) { 
     addMessage("search on: '" + req.term + "'<br/>", true); 

     $.ajax({ 
      url  : ajaxUrlBase1 + "GetMatchedCities/" + req.term, 
      cache : false, 
      type : "GET", // http method 
      success : function(msg){ 
       // ajax call has returned 
       var result = msg; 
       var a = []; 
       if (result !== null){ 
        for(var i=0; i < result.length; i++) { 
        a.push({label: result[i].prop1, id: result[i].prop2}); 
        } 
       } 
       responseFn(a); 
      } 
     }); 
    } 
}); 
+0

AREAS是MVC2的一部分,它们帮助组织您的项目(以及其他帮助!) – SlackerCoder 2010-03-26 18:06:07

0

你冷保存您的网址在一个隐藏的表单元素(Html.HiddenForm( ))并使用#id javascript运算符来检索它。刚发现今天。