كيفية محاكاة ScriptManager.RegisterStartupScript() في ASP.NET MVC المشروع

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

سؤال

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

الآن أنا باستخدام بلدي ScriptsHelper فئة مع RegisterStartupScript (طريقة) (يضيف البيانات HttpContext.الحالي.البنود).ثم العالمية.asax HttpApplication.EndRequest() المتزامن طلبات أشفع جميع المسجلين النصوص إلى الإخراج (المغلقة في العلامات).مسج.fn.الحمل() بنجاح ينفذ لهم عندما تلقى HTML يتم إلحاق دوم هذا هو بالضبط ما كنت بحاجة.هل تعتقد أنه هو "الصحيح" (جيدة) الحل, أو ربما كنت يمكن أن تشير إلى شيء أفضل ؟ شكرا

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

المحلول

وأنا واجهت وضعا مماثلا في مشروع قبل أن بدأت باستخدام مسج وانتهى به الأمر اللجوء إلى استخدام eval(). كنت عائدا قصاصة نص جافا سكريبت كجزء من قيمة عنصر DOM غير مرئية جنبا إلى جنب مع بقية HTML كنت إدراج في DOM.

وكان لي الكثير من المتاعب تصحيح هذا النوع من جافا سكريبت ديناميكيا في IE6 حتى هذا الحل عملت بها لائق بالنسبة لي لأنني يمكن أن تفقد قيمة العنصر DOM التي تم الحصول eval'd. ومع ذلك، لقد كنت دائما خشية من استخدام eval.

وهذا يبدو وكأنه الحل لديه بنية معقولة لتقديم من جانب الخادم بدلا من بلدي معكرونة رمز وهذه التقنية يبدو أنه يناسب الحق في مع روح jQuery.fn.load ولذا فإنني لن تقلق جدا من ذلك بكثير.

نصائح أخرى

نعم أنا أعتقد أن مسج يدعو eval() داخليا بالنسبة لك - هل تستخدم إلحاق?أعتقد أن هذا الأسلوب يعمل بشكل جيد جدا في معظم الوقت.إذا كانت البيانات التي تم إرجاعها من الملقم في القائمة التي تتكرر قد ترغب في النظر في استخدام وظيفة الحية إضافة إلى مسج 1.3 فإنه يسمح لك إرفاق الحدث لجميع الحالية والمستقبلية عناصر مطابقة محدد.الخروج من هذه المواد:

أيضا شيء آخر للنظر هو أداة للمساعدة في إدارة البرامج النصية و css asp.net mvc.لقد تم استخدام هذا و أنا أحب ذلك لأنه يجمع بين الملفات وكذلك كمادات لهم.يمكنك تكوين كل من الويب التكوين أيضا.

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