أين يتم وضع كود الصفحة الرئيسية في تطبيق MVC؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

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

لذلك كان سؤالي هو، أين يجب أن أضع كود استدعاء قاعدة بيانات الصفحة الرئيسية؟

عادة، يجب أن تذهب هذه إلى فئة التحكم الخاصة بها، أليس كذلك؟ولكن هذا يعني أنني سأضطر إلى توصيلها يدويًا (على سبيل المثال.تمرير ViewDatas) نظرًا لأنه خارج إطار التوجيه العادي الذي يوفره إطار عمل MVC.

هل هناك طريقة للقيام بذلك بشكل نظيف دون توصيل مكالمات تمرير/إجراء ViewData إلى الصفحات الرئيسية يدويًا أو تصنيف الأطر الفرعية؟

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

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

المحلول

إحدى الطرق للقيام بذلك هي وضع رابط ViewData في عرض الصفحة الرئيسية ثم تحديد BaseController:وحدة التحكم (أو الفئات الأساسية المتعددة) حيث يمكنك إجراء جميع مكالمات قاعدة البيانات التي تحتاجها.

ما تريد القيام به هو نفس الشيء الموضح في هذا مقالات.

آمل أن يساعد هذا!

يعتبر

نصائح أخرى

سؤال عظيم.لديك العديد من الخيارات المتاحة لك.

  1. قم بإجراء استدعاء jQuery على صفحتك الرئيسية للحصول على البيانات التي تحتاجها من وحدة التحكم ثم قم بملء حقولك باستخدام jQuery مرة أخرى.
  2. خيارك الثاني هو إنشاء عناصر تحكم المستخدم التي تجري مكالماتها الخاصة إلى وحدة التحكم لملء معلوماتها.

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

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

للسماح باستدعاء View() في وحدات التحكم الخاصة بك دون أي بيانات عرض صريحة، يمكنك تجاوز العرض في قاعدة التحكم الخاصة بك:

protected override ViewResult View(string viewName, string masterName, object model)
{
    if (model == null)
    {
        model = new ViewDataBase();
    }
    return base.View(viewName, masterName, model);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top