asp.net MVC التعامل مع التبعيات بين المدخلات الضوابط ؟

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

سؤال

لدي تطبيق يحتوي على اثنين تعتمد القوائم المنسدلة ، حيث إذا كان المستخدم بتحديد قيمة في مربع القائمة ، فإنه التحديثات المتوفرة مجموعة من المدخلات في القائمة باء.مثل جعل/نموذج سيارة.عندما يختار المستخدم الصانع قائمة نماذج التحديث وفقا لذلك.

في winforms ، وهذا من شأنه أن يكون مجرد التعامل معها في autopost العودة الحدث.ماذا تقنية/النهج يجب أن تأخذ في asp.net MVC?ويتم ذلك من خلال اجاكس ؟ مجرد محاولة للحصول على ما يصل الى سرعة على MVC و يتطلع إلى بناء استراتيجيات للتعامل مع المهام المشتركة أنا طلبت في التعامل معها في العمل.

أردت أن أشكر كل من ساهم في الرد على هذا المنصب.

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

المحلول

وكنت تفعل ذلك من خلال اياكس. إذا كان لديك هذه الضوابط:

و<select id="makes" /> و<select id="models" />

وبعد ذلك يمكنك القيام بذلك مع مسج:

$().ready(function() {
   $("select#makes").change(function() {
        var make = this.value;          
        $.getJSON('models/list?make=' + make, function(data) {
              //load 2nd dropdown with result
        })
   });
});

وبعد ذلك كنت فقط بحاجة إلى العمل على ModelsController يسمى قائمة () وترجع بنية بيانات JSON.

نصائح أخرى

الذي تستخدمه ASP.NET MVC هو غير ذي صلة إلى حد ما.أساسا لديك ثلاثة خيارات للحصول على هذا النوع من واجهة المستخدم ميكانيكي على صفحة ويب.

  1. إذا كانت البيانات في قوائم صغيرة نسبيا ونادرا تغيير, يمكن أن يكون أسهل فقط قبل تحميل كل البيانات الممكنة على الصفحة في الطلب الأولي إما في شيء مثل جافا سكريبت أو مجموعة العناصر المخفية في ترميز الصفحة.عندما تكون قيمة مربع التغييرات, جافا سكريبت فقط يستبدل محتويات مربع ب مع البيانات المناسبة.كل هذا يحدث دون أي طلبات مرة أخرى إلى الخادم مما يجعله سريع جدا.ولكن هذه الطريقة ينهار عندما يكون حجم البيانات الخاصة بك يؤثر على وقت استجابة الصفحة الأولى من الحمل.

  2. إذا كانت البيانات في القوائم الخاصة بك كبيرة أو في كثير من الأحيان تغيير (ضمن الإطار الزمني المستخدم سيكون على الصفحة اتخاذ قرار) ، إرث الأسلوب هو أن يكون مجرد صفحة على reloaded مع استعلام جديد الحجج عندما تكون قيمة مربع التغييرات.رمز على الخلفية يضبط الإخراج استنادا إلى حجج جديدة.اعتمادا على مدى تعقيد بقية تقديم التعليمات البرمجية في الصفحة الخاصة بك, هذا يمكن أن تكون مكلفة.

  3. هذا هو الاختلاف على الخيار 2 هو في الأساس الإجابة بن Scheirman أعطى بشأن اياكس.كنت لا تزال تحميل محتويات مربع ب على الطلب عند مربع التغييرات.الفرق هو أنك فقط إعادة قطعة من الصفحة التي قد تغير بدلا من صفحة كاملة.

شخصيا, إذا كانت البيانات الخاصة بك هي صغيرة بما يكفي لاستخدام الخيار 1 ، ربما هذا ما أود أن أذهب مع بسبب أدائها.وإلا انتقل مع الخيار 3 ، خاصة إذا كنت قد حصلت بالفعل الأخرى اياكس الأمور ذات الصلة التي نفذت بالفعل.الخيار 2 هو يبدو أن تعتبر إرثا ميكانيكي من قبل العديد من الناس في هذه الأيام.

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

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