คอมโพเนนต์เฟรมเวิร์กเพจ ASP.NET Web Forms คือโมเดลการเขียนโปรแกรมรันไทม์ภาษาทั่วไปที่ปรับขนาดได้ ซึ่งสามารถใช้สร้างเว็บเพจแบบไดนามิกได้ คอมโพเนนต์ ASP.NET Page Framework เป็นวิวัฒนาการเชิงตรรกะของ ASP (ไวยากรณ์ที่ ASP.NET ให้ไว้เข้ากันได้กับเพจที่มีอยู่) และได้รับการออกแบบมาโดยเฉพาะเพื่อจัดการกับข้อบกพร่องที่สำคัญหลายประการในรุ่นก่อนหน้า โดยเฉพาะอย่างยิ่ง ให้ความสามารถในการสร้างและใช้การควบคุม UI ที่นำมาใช้ซ้ำได้ซึ่งสรุปฟังก์ชันทั่วไป ซึ่งจะช่วยลดจำนวนโค้ดที่นักพัฒนาเพจจำเป็นต้องเขียน ช่วยให้นักพัฒนามีความชัดเจนและจัดระเบียบ โดยสร้างตรรกะของเพจ (ไม่ใช่ "โค้ดที่พันกัน" ); เครื่องมือพัฒนาที่ใช้ให้ความสามารถในการสนับสนุนการออกแบบเพจแบบ WYSIWYG ที่มีประสิทธิภาพ (สิ่งที่คุณเห็นคือสิ่งที่คุณได้รับ) (โค้ด ASP ดั้งเดิมที่มีอยู่ไม่ชัดเจน) บทความนี้จะแนะนำความรู้พื้นฐานเกี่ยวกับคุณลักษณะของเพจ ASP.NET
การเขียนเพจ ASP.NET หน้าแรกของคุณ
เพจ ASP.NET คือไฟล์ข้อความที่มีนามสกุล .aspx หน้าต่างๆ ประกอบด้วยโค้ดและแท็กที่ได้รับการคอมไพล์และดำเนินการแบบไดนามิกบนเซิร์ฟเวอร์เพื่อสร้างเนื้อหาที่แสดงสำหรับเบราว์เซอร์ไคลเอ็นต์ (หรืออุปกรณ์) ที่ร้องขอ สามารถปรับใช้ภายใต้แผนผังไดเร็กทอรีเสมือนของ IIS เมื่อไคลเอนต์เบราว์เซอร์ร้องขอทรัพยากร .aspx รันไทม์ ASP.NET จะวิเคราะห์ไฟล์เป้าหมายและคอมไพล์เป็นคลาสเฟรมเวิร์ก .NET จากนั้นคลาสนี้สามารถใช้เพื่อจัดการคำขอแบบไดนามิก ( โปรดทราบว่าไฟล์ .aspx เป็นเพียงไฟล์เดียวเท่านั้น รวบรวมในครั้งแรกที่มีการเข้าถึง และอินสแตนซ์ประเภทที่คอมไพล์สามารถนำมาใช้ซ้ำสำหรับคำขอหลายรายการในอนาคต)
เราไม่จำเป็นต้องแก้ไขโค้ดในไฟล์ HTML เราเพียงแต่ต้องเปลี่ยนนามสกุลเป็น .aspx เพื่อสร้างเพจ ASP.NET ตัวอย่างเช่น ตัวอย่างต่อไปนี้สาธิตหน้า HTML แบบง่ายที่รวบรวมชื่อและหมวดหมู่ของผู้ใช้ และส่งแบบฟอร์มกลับไปยังหน้าเดิมเมื่อผู้ใช้คลิกปุ่ม:
<form action="intro1_vb.aspx" method= "post">
<h3> ชื่อ: <input id="Name" type=text>
หมวดหมู่: <select id="Category" size=1>
<ทางเลือก>จิตวิทยา</ทางเลือก>
<ตัวเลือก">ธุรกิจ</ตัวเลือก>
<ตัวเลือก>popular_comp</ตัวเลือก>
</เลือก><
<ประเภทอินพุต=ค่าส่ง="ค้นหา">
</h3><
</form>
โปรดทราบ: ไม่มีอะไรเกิดขึ้นเมื่อคุณคลิกปุ่ม "ค้นหา" เนื่องจากไฟล์ .aspx มีเฉพาะ HTML แบบคงที่ (ไม่มีเนื้อหาแบบไดนามิก) ดังนั้น HTML เดียวกันจึงถูกส่งกลับไปยังไคลเอนต์ ทำให้เนื้อหาฟิลด์แบบฟอร์ม (กล่องข้อความและรายการแบบเลื่อนลง) สูญหาย
เพิ่มโค้ดง่ายๆ ให้กับเพจ
ไวยากรณ์ที่ ASP.NET ให้มานั้นเข้ากันได้กับเพจ ASP รองรับบล็อกการเรนเดอร์โค้ด <% %> ซึ่งสามารถผสมกับเนื้อหา HTML ในไฟล์ .aspx ได้ บล็อกโค้ดเหล่านี้จะถูกดำเนินการอย่างเคร่งครัดเมื่อเพจถูกแสดง
ตัวอย่างต่อไปนี้สาธิตวิธีการใช้บล็อกการแสดงผล <% %> (การเพิ่มขนาดตัวอักษรในแต่ละครั้ง) ใน HTML:
<form action="intro2_vb.aspx" method="post">
<h3> ชื่อ: <input id="Name" type=text>
หมวดหมู่: <select id="Category" size=1>
<ทางเลือก>จิตวิทยา</ทางเลือก>
<ตัวเลือก">ธุรกิจ</ตัวเลือก>
<ตัวเลือก>popular_comp</ตัวเลือก>
</เลือก><
</h3><
<ประเภทอินพุต=ค่าส่ง="ค้นหา">
<หน้า>
<% Dim I เป็นจำนวนเต็ม
สำหรับฉัน = 0 ถึง 7 % >
<font size="<%=I%><">< ยินดีต้อนรับสู่ ASP.NET </font> <br><
<%ถัดไป %>
</form>
โปรดทราบ: บล็อกโค้ด <% %> ในตัวอย่างข้างต้นแตกต่างจาก ASP ตรงที่จะถูกคอมไพล์จริง - ไม่ได้ตีความโดยกลไกสคริปต์ สิ่งนี้ช่วยปรับปรุงประสิทธิภาพการดำเนินการรันไทม์
นักพัฒนาเพจ ASP.NET สามารถใช้บล็อคโค้ด <% %> เพื่อปรับเปลี่ยนข้อมูลเอาต์พุต HTML แบบไดนามิก ตัวอย่างเช่น รหัสต่อไปนี้สาธิตวิธีการใช้บล็อกรหัส <% %> เพื่อตีความผลลัพธ์ที่ส่งกลับโดยไคลเอ็นต์:
<form action="intro3_vb.aspx">
<h3> ชื่อ: <input name="Name" type=text value="<%=HttpUtility.HtmlEncode(Request.QueryString("Name"))%><">
หมวดหมู่: <select name="Category" size=1>
-
หรี่ฉันเป็นจำนวนเต็ม
ค่าสลัว (2) เป็นสตริง
ค่า (0) = "จิตวิทยา"
ค่า (1) = "ธุรกิจ"
ค่า (2) = "popular_comp"
สำหรับ I = 0 ถึงค่าความยาว - 1
-
<% ถ้า (Request.QueryString("หมวดหมู่") = ค่า(i)) %>
<ตัวเลือกที่ถูกเลือกแล้ว">
<% อื่น ๆ %>
<ตัวเลือก>
<%สิ้นสุดถ้า %>
<%=ค่า(i)%>
</ตัวเลือก><
<%ถัดไป %>
</เลือก><
</h3><
<input type=submit name="Lookup" value="Lookup">
<หน้า>
<% ถ้า (ไม่ใช่ Request.QueryString("Lookup") = ไม่มีเลย) %>
สวัสดี <%=HttpUtility.HtmlEncode(Request.QueryString("Name")) %>< คุณเลือก: <%=HttpUtility.HtmlEncode(Request.QueryString("Category")) %>
<%สิ้นสุดถ้า %>
</form>
โปรดทราบ: แม้ว่าบล็อกโค้ด <% %> จะให้วิธีที่มีประสิทธิภาพสำหรับเราในการปรับแต่งข้อมูลเอาต์พุตข้อความที่ส่งคืนโดยเพจ ASP.NET แต่ก็ไม่มีโมเดลการเขียนโปรแกรม HTML ที่ชัดเจน ตัวอย่างข้างต้นแสดงให้เห็นว่านักพัฒนาที่ใช้เฉพาะบล็อกโค้ด <% %> จะต้องจัดการสถานะของเพจและดักจับค่าที่ส่งมาด้วยตนเอง