.Ajax与jQuery和MVC2

时间:2010-03-26 15:09:08

标签: asp.net-mvc jquery

我正在尝试创建一个ajax(post)事件,该事件将在按钮单击时填充div中的表。

我有一个组列表,当你点击一个组时,我希望该表“消失”,并且属于该组的成员“出现”。

使用jQuery的.ajax ...

时出现问题

当我点击按钮时,它正在寻找一个不存在的控制器,以及一个未被引用的控制器。但是,我使用AREAS(MVC2),该区域名为Member_Select,其中控制器名为MemberSelect。当我点击按钮时,我得到一个404,说明它找不到控制器Member_Select。我检查了链接按钮,单击时设置为Member_Select,但这是ajax调用:

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

我无法在网上找到任何示例/帮助。 任何想法/建议/提示将不胜感激。

谢谢!

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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);
            }
        });
    }
});

答案 2 :(得分:0)

使用:

AREA_NAME / CONTROLLER_NAME / ACTION_NAME

我不会使用$ .ajax而是使用jQuery Form Plugin。 并将表单设置为:

Html.BeginForm("Index","AdminArea/Admin",FormMethod.Post,
new { id="form-user", name="form-user"})

使用jQuery Form Plugin可以看一下:

http://arturito.net/2010/12/02/asp-net-mvc2-jquery-form-post-tutorial/

答案 3 :(得分:0)

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