โดยปกติ เวลาที่เราจะส่งค่าใน form ให้ controller เราสามารถที่จะใช้ DefaultModelBinder ในการส่งค่าให้ Method ใน controller นำไป process ได้ นอกจากนี้เราสามารถ ส่งค่าในรูปแบบอื่นๆได้อีก อาทิเช่น Array,ArrayList , IEnumerable, ICollection, IList, T[], Collection, และ List
เช่น
ใน หน้า update ในส่วนของ controller
public ActionResult Update(IList<int> ints) {
return View(ints);
}
ในส่วนของ html<form method="post" action="/Home/Update">
<input type="text" name="ints" value="1" />
<input type="text" name="ints" value="4" />
<input type="text" name="ints" value="2" />
<input type="text" name="ints" value="8" />
<input type="submit" />
form>
อีกตัวอย่างหนึ่ง ในกรณีที่เราส่งค่าที่ซับซ้อนขึ้น
public class Customer {
public decimal Id { get; set; }
public string Name { get; set; }
}
//Action method on HomeController
public ActionResult UpdateCustomers(IList<Customers> customers) {
return View(customers);
}
<form method="post" action="/Home/UpdateCustomers">
<input type="hidden" name="customers.Index" value="0" />
<input type="text" name="customers[0].Name" value=John" />
<input type="hidden" name="customers.Index" value="1" />
<input type="text" name="customers[1].Name" value="Ann" />
<input type="hidden" name="customers.Index" value="2" />
<input type="text" name="customers[2].Name" value="Sara" />
<input type="submit" />
form>
เราสามารถ กำหนด Index เป็นอะไรก็ได้ ไม่ใช่แค่ 0 เสมอ ไป
อีกกรณีหนึ่ง ถ้าหากเราใช้ IDictionary
public ActionResult Update(IDictionary<string, Customers> stocks) {
return View(stocks);
}
ในส่วนของ Html
<input type="text" name="stocks[0].Key" value="CUS01" />
<input type="text" name="stocks[0].Value.Name" value="John" />
<input type="text" name="stocks[0].Value.Name" value="Anna" />
<input type="text" name="stocks[1].Key" value="CUS02" />
<input type="text" name="stocks[1].Value.Name" value="Sara" />
