Вопрос

Я не думаю, что у меня есть функции 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" })%>

где он говорит: «Ресурс не может быть найден». Когда он должен стрелять, который помещается в корзину

[HttpPost]
public void SaveBasket()
{
    // DO STUFF
}
Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top