سؤال

إذا لم أكن مخطئا - اتفاقيات ASP.NET MVC يبدو أن تريد مني أن أفعل ما يلي لعرض تحكم

.

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

 public class ProductsController : Controller
    {
        public ActionResult Index()
        {
            return View();   // looks for Index.aspx in Products directory
        }
    }

والآن أن يكون على ما يرام. ولكن سوف ينتهي مع مليار صفحة Index.aspx، وأنا واحد من هؤلاء الناس الذي لم يغلق أي ملفات ولذا فإنني سوف ينتهي بالجنون.

وبدلا من ذلك أنا يمكن أن تخلق منتجات / Products.aspx وتغيير تحكم بلدي لما يلي:

 public class ProductsController : Controller
    {
        public ActionResult Index()  // my default routing goes to Index (from sample project)
        {
            return View("Products");
        }
    }

وأنا أفهم كيف يعمل، والتي لها غرامة تماما في نمط تصميم MVC للقيام بذلك. وليس الإختراق أو أي شيء من هذا القبيل.

ومشكلتي (بعد الاستماع إلى هذا الفيديو PDC) هي تلك الاتفاقية على customizabiltity هي يفضل في MVC (أو أيا كان عبارة الصحيحة).

وهكذا أنا أتساءل إذا أنا في عداد المفقودين وسيلة ثالثة، أو إذا كان الناس على ما يرام مع 50 علامات التبويب فهرس في Visual Studio؟

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

المحلول

وبعد الإجراء الافتراضي لكل وحدة تحكم لها نفس الاسم فقط يبسط التوجيه (تحقق global.asax). أيضا، كل شيء (المنتجات، كتب، اتصالات، ...) استخدام الإجراءات / وجهات النظر مع نفس الاسم لنفس الوظيفة، ثم رمز يصبح أسهل بكثير للتنقل والفهم. هذا الاستخدام للاتفاقية مهم بشكل خاص عند العمل كجزء من فريق لأنها سوف تشجع كود متناسقة عبر المطورين.

وحين تبحث في سؤال آخر، وعدوت عبر SimplyRestfulRouting في المشروع MVCContrib على كود بلاكس. هذا قد تعطيك بعض الأفكار.

نصائح أخرى

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

وانها مجرد نمط. استخدام نمط، ولكن تأكد من عمل لك. شخصيا، أنا أحب أن يكون لي المشاهدات اسمه من وظيفتها وأنا لم يكن لديك العديد من صفحات Index.aspx، لأنني لم يكن لديك العديد من المؤشرات.

scroll top