ตัวยึดรูปแบบเริ่มต้นต้องการ url นี้:
http:
เพื่อที่จะเชื่อมโยงกับ:
public ActionResult Multiple(int[] ids)
{
...
}
และถ้าคุณต้องการให้สิ่งนี้ทำงานกับค่าที่คั่นด้วยลูกน้ำคุณสามารถเขียนตัวประสานโมเดลที่กำหนดเอง:
public class IntArrayModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (value == null || string.IsNullOrEmpty(value.AttemptedValue))
{
return null;
}
return value
.AttemptedValue
.Split(',')
.Select(int.Parse)
.ToArray();
}
}
จากนั้นคุณสามารถใช้ตัวยึดแบบจำลองนี้กับอาร์กิวเมนต์การดำเนินการเฉพาะ:
public ActionResult Multiple([ModelBinder(typeof(IntArrayModelBinder))] int[] ids)
{
...
}
หรือนำไปใช้ทั่วโลกเพื่อพารามิเตอร์จำนวนเต็มอาร์เรย์ทั้งหมดในของคุณApplication_Start
ในGlobal.asax
:
ModelBinders.Binders.Add(typeof(int[]), new IntArrayModelBinder());
และตอนนี้การกระทำของคอนโทรลเลอร์ของคุณอาจมีลักษณะดังนี้:
public ActionResult Multiple(int[] ids)
{
...
}
[FromUri]
ฉันถูกหายไปpublic ActionResult Multiple([FromUri]int[] ids) {}
(GET)