คุณตั้งค่าหน้าเริ่มต้นสำหรับการดีบักในแอปพลิเคชัน ASP.NET MVC ได้อย่างไร


131

คุณจะเริ่มดีบักแอปพลิเคชันที่รูทแอปพลิเคชันได้อย่างไร ตัวอย่างเช่น: http: // localhost: 49742 /

ฉันมักจะได้รับหน้าที่ไม่มีอยู่เช่น http: // localhost: 49742 / Views / Home / About.aspx

โปรดทราบว่าจะเป็นการดีหากเริ่มต้นที่http: // localhost: 49742 / Views / Home / About


เกี่ยวข้อง: stackoverflow.com/questions/2821796/…
JNF

คำตอบ:


218

ไปที่คุณสมบัติของโครงการและตั้งค่าคุณสมบัติหน้าเริ่มต้น

  1. ไปที่คุณสมบัติของโครงการ
  2. ไปที่แท็บเว็บ
  3. เลือกเฉพาะที่หน้าปุ่ม
  4. พิมพ์ URL ที่ต้องการในกล่องข้อความหน้าเฉพาะ

1
@ Mark- นี่คือการเชื่อมโยงที่ดีที่อธิบายถึงกระบวนการใน detail- มากขึ้นstephenwalther.com/blog/archive/2008/07/10/... ฉันจะตอบคำถามของคุณ
RichardOD

22
+1 อย่าลืมพิมพ์มันในขั้นตอนที่ 4 การเลือกด้วยปุ่ม [... ] จะเป็นการสร้าง URL ปลอม: D
P.Brian.Mackey

10
หากคุณเป็นเพียงการทดสอบและทำงานกับเทมเพลตโครงการ MVC เริ่มต้นใน VS.NET 2010 เพียงแค่ล้างค่าใด ๆ สำหรับหน้าเริ่มต้นแล้วจึงทำการดีบักโครงการของคุณ สิ่งนี้จะนำคุณไปสู่ ​​"ยินดีต้อนรับสู่ ASP.NET MVC!" หน้า.
atconway

3
นอกเหนือจากขั้นตอนข้างต้นคุณต้องตรวจสอบให้แน่ใจว่าคุณได้เลือกโครงการเริ่มต้นที่ถูกต้อง (ไม่เพียงพอที่จะตั้งค่าหน้าเริ่มต้นหากคุณมีหลายโครงการ) คลิกขวาที่ Project ใน Solution Explorer และตั้งเป็นโครงการ Startup จากนั้นชื่อโครงการจะเป็นตัวหนาในแผนผังโซลูชัน
Jazimov

3
@ Mark- ในขั้นตอนที่ 4 คุณสามารถเว้นช่องข้อความว่างไว้และตรวจสอบให้แน่ใจว่าได้เลือกปุ่มตัวเลือกหน้าเฉพาะและมันจะเริ่มทำการดีบั๊กที่รูทแอปพลิเคชัน
amraby

22

ในขณะที่คุณสามารถมีเพจเริ่มต้นในโครงการ MVC การใช้งานตามปกติเพิ่มเติมสำหรับมุมมองเริ่มต้นจะใช้ตัวควบคุมเริ่มต้นดำเนินการใน global.asax ผ่านวิธีการ 'RegisterRoutes (... )' ตัวอย่างเช่นหากคุณต้องการให้ตัวควบคุม Public \ Home เป็นเส้นทาง / มุมมองเริ่มต้นของคุณรหัสจะเป็น:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Public", action = "Home", id = UrlParameter.Optional } // Parameter defaults
        );

    }

เพื่อให้สามารถใช้งานได้คุณจะต้องมีชุดหน้าเริ่มต้นในโครงการ


ว้าว ... มันใช้งานได้จริงหลังจากเผยแพร่บนเซิร์ฟเวอร์ (ซึ่งไม่ใช่กรณีสำหรับคำตอบที่ยอมรับอย่างน้อยก็ไม่ใช่สำหรับฉัน) ดังนั้นนี่จึงเป็นคำตอบที่ดีจริง ๆ
Antoine Pelletier

10

สิ่งนี้ใช้ได้กับฉันในหน้าเฉพาะสำหรับ MVC:

/Home/Index

อัปเดต: ปัจจุบันฉันเพิ่งใช้สแลชไปข้างหน้าในกล่องข้อความ "หน้าเฉพาะ" และพาฉันไปที่หน้าแรกตามที่กำหนดไว้ในการกำหนดเส้นทาง:

/

คำตอบที่ดีง่าย แต่ระวัง - หากคุณป้อนสิ่งที่คล้ายกับ URL เริ่มต้นคุณจะยังคงได้รับข้อความ URL ที่ไม่ถูกต้อง (แม้ว่าจะยังไม่ได้เลือก) ดังนั้นเลือก URL เริ่มต้นลบข้อความจากนั้นตั้งค่าคุณสมบัติหน้าเฉพาะให้เป็นเส้นทางสัมพัทธ์ดังกล่าว
แอนดี้บราวน์

7

การเลือกหน้าเฉพาะจากคุณสมบัติโครงการไม่สามารถแก้ปัญหาของฉันได้

ใน MVC 4 ให้เปิด App_Start / RouteConfig.cs

ตัวอย่างเช่นหากคุณต้องการเปลี่ยนหน้าเริ่มต้นเป็นเข้าสู่ระบบ :

routes.MapRoute(
        "Default", // Route name
        "",        // URL with parameters
        new { controller = "Account", action = "Login"}  // Parameter defaults
    );

1

หากคุณต้องการเริ่มต้นที่ "แอปพลิเคชันรูท" ตามที่คุณอธิบายคลิกขวาที่หน้า Default.aspx ระดับบนสุดและเลือกตั้งเป็นหน้าเริ่มต้น กด F5 และทำเสร็จแล้ว

หากคุณต้องการเริ่มต้นที่การดำเนินการควบคุมที่แตกต่างกันดูคำตอบของมาร์ค


1
ใช้งานได้กับ MVC หรือไม่ สำหรับฉันมันพยายามที่จะเริ่มต้นหน้า ASPX และไม่ได้กำหนดเส้นทาง
Robaticus

1

มาที่หน้านี้อีกครั้งและฉันมีข้อมูลเพิ่มเติมที่จะแบ่งปันกับผู้อื่น

ตรวจแก้จุดบกพร่องสภาพแวดล้อม (ใช้ Visual Studio)

1a) ลิงค์ของ Stephen Walter เพื่อตั้งค่าหน้าเริ่มต้นใน MVC โดยใช้คุณสมบัติของโครงการจะใช้ได้เฉพาะเมื่อคุณทำการดีบักแอปพลิเคชัน MVC ของคุณ

1b) คลิกเมาส์ขวาบนหน้า. aspx ใน Solution Explorer และเลือก "ตั้งค่าเป็นหน้าเริ่มต้น" จะทำงานเหมือนกัน

หมายเหตุ: ในทั้งสองกรณีข้างต้นการตั้งค่าหน้าเริ่มต้นจะรับรู้โดย Visual Studio Development Server ของคุณเท่านั้น ไม่รู้จักเซิร์ฟเวอร์ที่ปรับใช้ของคุณ

สภาพแวดล้อมที่ปรับใช้

2a) ในการตั้งค่าหน้าเริ่มต้นสมมติว่าคุณไม่ได้เปลี่ยนการกำหนดเส้นทางเริ่มต้นใด ๆ ให้เปลี่ยนเนื้อหาของ /Views/Home/Index.aspx เพื่อทำ "Server.Transfer" หรือ "Response.Redirect" ตามที่คุณต้องการ หน้า.

2b) เปลี่ยนเส้นทางเริ่มต้นใน global.asax.cs ของคุณไปยังหน้าเว็บที่คุณต้องการ

มีตัวเลือกอื่น ๆ ที่ผู้อ่านรับทราบหรือไม่? ข้อใดข้างต้น (รวมถึงตัวเลือกของคุณเอง) จะเป็นวิธีแก้ปัญหาที่คุณต้องการ (และโปรดบอกเหตุผลกับเรา)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.