ฉันต้องการตั้งค่าเส้นทาง ASP.NET MVC ที่มีลักษณะดังนี้:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{idl}", // URL with parameters
new { controller = "Home", action = "Index", idl = UrlParameter.Optional } // Parameter defaults
);
คำขอเส้นทางนั้นมีลักษณะเช่นนี้...
Example/GetItems/1,2,3
...กับการกระทำของคอนโทรลเลอร์ของฉัน:
public class ExampleController : Controller
{
public ActionResult GetItems(List<int> id_list)
{
return View();
}
}
คำถามคือ ฉันต้องตั้งค่าอะไรเพื่อแปลงพารามิเตอร์ idl
url จาก string
เป็น List<int>
และเรียกใช้การทำงานของคอนโทรลเลอร์ที่เหมาะสม
ฉันได้เห็นคำถามที่เกี่ยวข้องที่นี่ ซึ่งใช้ OnActionExecuting
เพื่อประมวลผลสตริงล่วงหน้า แต่ ไม่ได้เปลี่ยนประเภท ฉันไม่คิดว่ามันจะได้ผลสำหรับฉันที่นี่ เพราะเมื่อฉันแทนที่ OnActionExecuting
ในคอนโทรลเลอร์ของฉันและตรวจสอบพารามิเตอร์ ActionExecutingContext
ฉันเห็นว่าพจนานุกรม ActionParameters
มีคีย์ idl
ที่มีค่า Null อยู่แล้ว ซึ่งน่าจะเป็นการพยายามส่งจากสตริงไปยัง List<int>
... นี่เป็นส่วนหนึ่งของเส้นทางที่ฉันต้องการควบคุม
เป็นไปได้ไหม?