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> ผลลัพธ์
