ASP.NET - MVC - TempData
TempData trong MVC ASP.NET
TempData trong ASP.NET MVC có thể được sử dụng để lưu trữ dữ liệu tạm thời có thể được sử dụng trong yêu cầu tiếp theo. TempData sẽ bị xóa sau khi hoàn thành một yêu cầu tiếp theo.
TempData rất hữu ích khi bạn muốn chuyển dữ liệu từ một phương thức hành động này sang một phương thức hành động khác của cùng một controller khác cũng như chuyển hướng. Đây là loại từ điển có nguồn gốc từ TempDataDipedia.
Bạn có thể thêm một cặp key-value trong TempData như trong ví dụ dưới đây.
Ví dụ: TempData
public class HomeController : Controller
{
// GET: Student
public HomeController()
{
}
public ActionResult Index()
{
TempData["name"] = "Test data";
TempData["age"] = 30;
return View();
}
public ActionResult About()
{
string userName;
int userAge;
if(TempData.ContainsKey("name"))
userName = TempData["name"].ToString();
if(TempData.ContainsKey("age"))
userAge = int.Parse(TempData["age"].ToString());
// do something with userName or userAge here
return View();
}
}
Trong ví dụ trên, chúng ta đã thêm dữ liệu vào TempData và truy cập cùng một dữ liệu bằng một khóa bên trong phương thức hành động khác. Xin lưu ý rằng chúng tôi đã chuyển đổi các giá trị thành loại thích hợp.
Hình dưới đây minh họa TempData.
Gọi TempData.Keep() để giữ lại các giá trị TempData trong yêu cầu thứ ba tiếp theo.
Ví dụ TempData.Keep()
public class HomeController : Controller
{
public HomeController()
{
}
public ActionResult Index()
{
TempData["myData"] = "Test data";
return View();
}
public ActionResult About()
{
string data;
if(TempData["myData"] != null)
data = TempData["myData"] as string;
TempData.Keep();
return View();
}
public ActionResult Contact()
{
string data;
if(TempData["myData"] != null)
data = TempData["myData"] as string;
return View();
}
}