سؤال

لا أعتقد أنني أحصل على وظائف AJAX في MVC، لأنني أحصل على هذه المشكلة الغريبة.

حصلت على التعليمات البرمجية التالية التي تجعل مكالمة AJAX الخاصة بي، يتم وضعها في عرض جزئي مع قائمة منتجات:

                <% 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> على masterpage.

وهذه الطريقة في BasketController، والتي ترجع وجهة نظر جزئية موجودة في السلة / السلة .ascx:

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

        return PartialView("BasketList");
    }

عندما أقوم بتسجيل الدخول باستخدام عضوية ASP.NET الافتراضية، فإن كل شيء يعمل بشكل جيد، فهو يقوم بتحديث السلة وكلها Async، ولكن عندما أكون قمت بتسجيل الدخول والنقر فوق AddTocart، فإنه يعيد توجيهي إلى سلة / AddTobasket؟ productid = 1 ، وهو عرض جزئي.

لا أحد يعرف لماذا يحدث هذا؟

لدي مشكلة مماثلة مع ajax.actionLink

<%= Ajax.ActionLink("Gem", "SaveBasket", "Basket", new AjaxOptions { HttpMethod = "Post" })%>

حيث تقول "لا يمكن العثور على المورد". عندما تنطلق، والتي يتم وضعها في BasketsController

[HttpPost]
public void SaveBasket()
{
    // DO STUFF
}
هل كانت مفيدة؟

المحلول

يبدو أنه يحتوي على خطأ JavaScript في مكان ما يمنع الأشياء Ajax التي يجب أن تحدث. لا أستطيع أن أقول لماذا يحدث ذلك فقط عند تسجيل الدخول.

هل لديك أي أخطاء في وحدة التحكم في الخطأ / Firebug؟

نصائح أخرى

هل أنت متأكد من أن جميع صفحاتك بما في ذلك مكتبات Microsoft Ajax؟ وفي الترتيب الصحيح؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top