كيف يمكنني استدعاء JavaScript على صفحة MVC المضيفة عند اكتمال مكالمة AJAX في العرض الجزئي؟

StackOverflow https://stackoverflow.com/questions/1135328

سؤال

لدي عرض جزئي ASP.NET MVC يستخدم للبحث. يقوم بإجراء مكالمة AJAX لاسترداد النتائج. بمجرد استرداد النتائج وعرضها في جزء الناتج، يمكن للمستخدم النقر فوق ارتباط في أي من صفوف النتائج لتحديد أحد نتائج البحث. عندما ينقر المستخدم على رابط لتحديد أحد نتائج البحث، فإنه سيجعل طلب نشر AJAX لتحديث بعض الحالة. بمجرد اكتمال مكالمة AJAX هذه، أحتاج إلى إعادة توجيه إلى صفحة أخرى، لكن الصفحة الوجهة تعتمد على الصفحة التي يتم فيها تشغيل المستخدم. سيتم استضافة طريقة العرض الجزئية هذا في صفحات متعددة وسيختلف موقع إعادة التوجيه لكل صفحات مضيفة. لا أستطيع التفكير في طريقة للقيام بذلك من المنطقي ولا إزاء العرض الجزئي إلى صفحة الاستضافة (أو العكس) بشكل مفرط.

أعتقد أن الخيار الآخر قد يؤدي إلى إعادة توجيه إلى صفحة أخرى بمجرد اكتمال استدعاء التحديد AJAX (هذا هو الهدف في النهاية)، ولكن لن يتم ابتلاع نتيجة إعادة التوجيه داخل مكالمة AJAX؟

أو هل هناك طريقة للحصول على زر أو رابط على كل صف بدلا من ذلك يؤدي ذلك إلى حدوث طلب نشر قد يحدث ذلك يمكن إرجاع نتيجة إعادة التوجيه، مع الوجهة بناء على صفحة الاتصال؟

هل كانت مفيدة؟

المحلول

انتهى بي الأمر باستخدام نوع من نمط TemplateMethod لجعل هذا العمل. في الجزئي، أضفت وظيفة JavaScript:

function onActionCompleted() {
    DoSomethingLocal();
    if (typeof DoSomethingInParentPage == 'function') {
        DoSomethingInParentPage();
    }
} 

هذه الشيكات لمعرفة ما إذا كانت الوظيفة موجودة وهي وظيفة، وإذا كانت تتم مكالمات الوظيفة. من أجل العمل هذا، يمكن لصفحة الاستضافة اختيار تنفيذ الطريقة dosomethinginparentpage لإكمال بعض الإجراءات عند اكتمال الإجراء في الجزئي. لست متأكدا من كيفية التحقق من مطابقة المعلمات، ولكن على الأقل أحصل على مكالمة عندما انتهت الجزئية من عملها.

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