asp.net mvc ajax.BeginForm Перенаправление - PullRequest
3 голосов
/ 04 декабря 2009

Не думаю, что я получаю функции Ajax в mvc, потому что я получаю эту странную проблему.

Я получил следующий код, который делает мой вызов 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 ]

4 голосов
/ 04 декабря 2009

Похоже, у вас где-то есть ошибка javascript, которая блокирует AJAX, что должно происходить. Не могу сказать, почему это произойдет, только когда выйдет из системы.

Есть ли у вас ошибки в консоли ошибок / firebug?

2 голосов
/ 04 декабря 2009

Вы уверены, что все ваши страницы включают библиотеки Microsoft Ajax? И в правильном порядке?

...