ฉันกำลังพยายามสร้าง "ไมโครเว็บแอป" ที่เรียบง่ายมากซึ่งฉันสงสัยว่าจะเป็นที่สนใจของ Stack Overflow'rs สองสามตัวถ้าฉันทำสำเร็จ ฉันโฮสต์ไว้บน C # ของฉันในไซต์ Depth ซึ่งเป็นวานิลลา ASP.NET 3.5 (เช่นไม่ใช่ MVC)
การไหลนั้นง่ายมาก:
- หากผู้ใช้เข้าสู่แอปด้วย URL ที่ไม่ได้ระบุพารามิเตอร์ทั้งหมด (หรือหากพารามิเตอร์ใด ๆ ไม่ถูกต้อง) ฉันต้องการเพียงแค่แสดงการควบคุมอินพุตของผู้ใช้ (มีแค่สองอัน)
- หากผู้ใช้เข้าสู่แอปที่มี URL ที่ไม่มีพารามิเตอร์ที่จำเป็นทั้งหมดผมต้องการที่จะแสดงผลและควบคุมการป้อนข้อมูล (เพื่อให้พวกเขาสามารถเปลี่ยนพารามิเตอร์)
ความต้องการที่กำหนดขึ้นเองของฉันมีดังนี้
- ฉันต้องการให้การส่งใช้ GET แทนการโพสต์ส่วนใหญ่เพื่อให้ผู้ใช้สามารถบุ๊กมาร์กหน้าได้อย่างง่ายดาย
- ฉันไม่ต้องการให้ URL ดูงี่เง่าหลังจากการส่งโดยมีบิตและชิ้นส่วนที่ไม่เกี่ยวข้องอยู่ โปรดระบุ URL หลักและพารามิเตอร์จริง
- ตามหลักการแล้วฉันต้องการหลีกเลี่ยงการใช้ JavaScript เลย ไม่มีเหตุผลที่ดีในแอปนี้
- ฉันต้องการเข้าถึงตัวควบคุมในช่วงเวลาแสดงผลและตั้งค่าเป็นต้นโดยเฉพาะอย่างยิ่งฉันต้องการให้สามารถตั้งค่าเริ่มต้นของการควบคุมเป็นค่าพารามิเตอร์ที่ส่งเข้ามาหาก ASP.NET ไม่สามารถทำได้โดยอัตโนมัติ สำหรับฉัน (ภายในข้อ จำกัด อื่น ๆ )
- ฉันยินดีที่จะทำการตรวจสอบพารามิเตอร์ทั้งหมดด้วยตัวเองและฉันไม่ต้องการอะไรมากกับเหตุการณ์ฝั่งเซิร์ฟเวอร์ ง่ายมากที่จะตั้งค่าทุกอย่างในการโหลดหน้าแทนที่จะแนบเหตุการณ์กับปุ่มต่างๆเป็นต้น
ส่วนใหญ่ก็โอเค แต่ฉันไม่พบวิธีใดในการลบ viewstate อย่างสมบูรณ์และรักษาฟังก์ชันที่มีประโยชน์ที่เหลือไว้ การใช้โพสต์จากบล็อกโพสต์นี้ฉันได้จัดการเพื่อหลีกเลี่ยงการรับค่าที่แท้จริงสำหรับ viewstate - แต่มันก็ยังคงเป็นพารามิเตอร์ใน URL ซึ่งดูน่าเกลียดจริงๆ
ถ้าฉันทำให้มันเป็นรูปแบบ HTML ธรรมดาแทนที่จะเป็นแบบฟอร์ม ASP.NET (เช่น take out runat="server"
) ฉันจะไม่ได้รับ magic viewstate ใด ๆ - แต่ฉันไม่สามารถเข้าถึงการควบคุมทางโปรแกรมได้
ผมสามารถทำทั้งหมดนี้โดยไม่สนใจมากที่สุดของ ASP.NET และสร้างเอกสาร XML กับ LINQ กับ XML IHttpHandler
และการใช้ รู้สึกว่าอยู่ในระดับต่ำไปหน่อย
ฉันตระหนักดีว่าปัญหาของฉันสามารถแก้ไขได้โดยการผ่อนคลายข้อ จำกัด ของฉัน (เช่นใช้ POST และไม่สนใจเกี่ยวกับพารามิเตอร์ส่วนเกิน) หรือโดยใช้ ASP.NET MVC แต่ข้อกำหนดของฉันไม่สมเหตุสมผลจริง ๆ หรือไม่?
บางที ASP.NET อาจไม่ลดขนาดเป็นแอปประเภทนี้? มีทางเลือกอื่นที่เป็นไปได้มาก: ฉันแค่โง่และมีวิธีง่ายๆในการทำที่ฉันไม่พบ
ความคิดใคร? (ความคิดเห็นเกี่ยวกับวิธีที่ผู้ยิ่งใหญ่ล้มลง ฯลฯ ไม่เป็นไร - ฉันหวังว่าฉันจะไม่เคยอ้างว่าเป็นผู้เชี่ยวชาญ ASP.NET เนื่องจากความจริงค่อนข้างตรงกันข้าม ... )