โปรเจ็กส์แบบ WebMVC ให้ Controller รับพารามิเตอร์

สร้างโปรเจ็กส์แบบ WebMVC

เสร็จแล้วมาเพิ่ม HelloWorldController

แก้ไข HelloWorldController

Controllers/HelloWorldController.cs

บรรทัดที่ 26,31 ; ใช้ HtmlEncoder.Default.Encode ในการจัดการกับอินพุท เพื่อป้องกันการโจมตีทางอินพุทสตริงที่ส่งมา (malicious input)

 

ทดสอบ WelcomeA

เรียกไปที่ https://localhost:5001/HelloWorld/WelcomeA?name=Jack&numtimes=4
จะได้ Hello Jack, NumTimes is: 4

เรียกไปที่ https://localhost:5001/HelloWorld/WelcomeA?name=Jack
จะได้ Hello Jack, NumTimes is: 1 (เพราะ numTimes มีค่า default เป็น 1)

เรียกไปที่ https://localhost:5001/HelloWorld/WelcomeA
จะได้ Hello , NumTimes is: 1 (เพราะ name ไม่มีค่า default)

ทดสอบ WelcomeB

เรียกไปที่ https://localhost:5001/HelloWorld/WelcomeB/3?name=Jack
จะได้ Hello Jack, ID: 3

จะสังเกตุเห็นได้ว่า id ไม่ได้ส่งไปเป็นพารามิเตอร์เหมือน name แต่ id เป็นส่วนหนึ่งของ url เป็นเพราะว่า id เป็น template ที่ถูกเรียกใช้ใน MapRoute (ดูไฟล์ Startup.cs)

Startup.cs

เรียกไปที่ https://localhost:5001/HelloWorld/WelcomeB/3
จะได้ Hello , ID: 3

เรียกไปที่ https://localhost:5001/HelloWorld/WelcomeB
จะได้ Hello , ID: 1

 

Link