asp.net mvc ajax.BeginForm重定向

时间:2009-12-04 09:21:46

标签: asp.net-mvc ajax asp.net-ajax asp.net-mvc-2

我不认为我在mvc中得到了Ajax函数,因为我遇到了这个奇怪的问题。

我得到了以下代码,它使我的ajax调用,它被置于带有productList的局部视图中:

                <% using(Ajax.BeginForm("AddToBasket", "Basket", 
                            new { productID = item.Id }, 
                            new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "Basket", OnSuccess = "productAdded(" + item.Id + ")" })) { %>
                    <input type="image" src="/Content/addToCart.png" />
                <% } %>

我的主页上有<div id="Basket"></div>

这个方法在BasketController中,它返回一个在Basket / BasketList.ascx中找到的局部视图:

        [HttpPost]
    public ActionResult AddToBasket(int productID)
    {
        // DO STUFF

        return PartialView("BasketList");
    }

当我使用默认的asp.net会员登录时,一切正常,它更新篮子并且它都是异步的,但是当我退出并点击addToCart时,它会将我重定向到Basket / AddToBasket? productID = 1,这是局部视图。

有谁知道为什么会这样?

我对ajax.actionlink

有类似的问题
<%= Ajax.ActionLink("Gem", "SaveBasket", "Basket", new AjaxOptions { HttpMethod = "Post" })%>

它说“无法找到资源”。什么时候应该开火,放在BasketController中

[HttpPost]
public void SaveBasket()
{
    // DO STUFF
}

2 个答案:

答案 0 :(得分:4)

听起来你在某个地方有一个javascript错误阻止了应该发生的AJAX事情。不能说为什么只有在退出时才会发生。

错误控制台/ firebug中是否有任何错误?

答案 1 :(得分:2)

您确定所有网页都包含Microsoft Ajax库吗?并按正确的顺序?