سؤال

أعلم أن هذا الموقع مكتوب باستخدام ASP.Net MVC ولا أرى "/Home" في عنوان url.وهذا يثبت لي أنه يمكن القيام بذلك.ما هو الطريق الخاص الذي أحتاجه؟

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

المحلول

فقط قم بتغيير "الصفحة الرئيسية" إلى سلسلة فارغة.

routes.MapRoute(
    "Home",
    "",
    new { action = Index, controller = Home }
);

نصائح أخرى

إذا كنت تعمل على IIS 7، فيمكنك ببساطة حذف الملف Default.aspx الذي يأتي مع ASP.NET MVC (على افتراض أنك تعمل على Preview 3 أو أعلى).كان هذا الملف مطلوبًا بسبب مشكلة في Cassini تم إصلاحها في .NET 3.5 SP1.لمزيد من التفاصيل راجع:

http://haacked.com/archive/2008/04/10/upcoming-changes-in-routing.aspxوhttp://haacked.com/archive/2008/05/12/sp1-beta-and-its-effect-on-mvc.aspx

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

أود أن أضيف

routes.MapRoute("NoIndex", "{action}", new { controller = "Home", action = "Index" });

في RouteConfig.cs

وهذا ما فعلته للتخلص من المنزل.سيتم التعامل مع جميع المسارات بمحدد واحد فقط على أنه الصفحة الرئيسية/الإجراء وأي منها بمحددين كوحدة تحكم/إجراء.الجانب السلبي الآن هو أن وحدة التحكم يجب أن تحتوي على فهرس صريح (/Controller != /Controller/Index)، ولكنه قد يساعدك أنت أو الآخرين.

routes.MapRoute(
    "Default",
    "{action}",
    new { controller = "Home", action = "Index" }
);

routes.MapRoute(
    "Actions",
    "{controller}/{action}",
    new { }
);

في IIS 7، يمكنك ببساطة حذف الملف Default.aspx الذي يأتي مع ASP.NET MVC (على افتراض أنك تعمل على Preview 3 أو أعلى).كان هذا الملف مطلوبًا بسبب مشكلة في Cassini تم إصلاحها في .NET 3.5 SP1.

لمزيد من التفاصيل راجع:

التغييرات القادمة في التوجيه و .NET 3.5 SP1 Beta وتأثيره على MVC

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