ViewData เป็นพจนานุกรมของอ็อบเจ็กต์ที่จัดเก็บและดึงข้อมูลโดยใช้สตริงเป็นคีย์ มันถูกใช้ในการถ่ายโอนข้อมูลจากคอนโทรลเลอร์ไปยัง View เนื่องจาก ViewData เป็นพจนานุกรม จึงประกอบด้วยคู่ของคีย์-ค่า โดยที่แต่ละคีย์ต้องเป็นสตริง ViewData ถ่ายโอนข้อมูลจากคอนโทรลเลอร์เพื่อดูเท่านั้น ไม่ใช่ในทางกลับกัน ใช้ได้เฉพาะในช่วงคำขอปัจจุบันเท่านั้น
การจัดเก็บข้อมูลใน ViewData -
ViewData["countries"] = countriesList;
กำลังดึงข้อมูลจาก ViewData -
string country = ViewData["MyCountry"].ToString();
ViewData ไม่มีการตรวจสอบข้อผิดพลาดของเวลาคอมไพล์ ตัวอย่างเช่น หากเราสะกดชื่อคีย์ผิด เราจะไม่ได้รับข้อผิดพลาดเวลาคอมไพล์ เราจะเรียนรู้เกี่ยวกับข้อผิดพลาดเฉพาะที่รันไทม์เท่านั้น
คอนโทรลเลอร์
ตัวอย่าง
using System.Collections.Generic; using System.Web.Mvc; namespace DemoMvcApplication.Controllers{ public class HomeController : Controller{ public ViewResult Index(){ ViewData["Countries"] = new List<string>{ "India", "Malaysia", "Dubai", "USA", "UK" }; return View(); } } }
ดู
@{ ViewBag.Title = "Countries List"; } <h2>Countries List</h2> <ul> @foreach(string country in (List<string>)ViewData["Countries"]){ <li>@country</li> } </ul>
ผลลัพธ์