当ASP.NET MVC控制器在处理请求时,控制器变量的数据可能会丢失。这可能是因为HTTP请求是无状态的,每次请求都会创建一个新的控制器实例。为了解决这个问题,可以使用以下方法:
public class MyController : Controller
{
public ActionResult Index()
{
// 将数据存储在Session中
Session["myData"] = "Hello World";
return View();
}
public ActionResult AnotherAction()
{
// 从Session中获取数据
string myData = Session["myData"] as string;
return View();
}
}
public class MyController : Controller
{
public ActionResult Index()
{
// 将数据存储在TempData中
TempData["myData"] = "Hello World";
return View();
}
public ActionResult AnotherAction()
{
// 从TempData中获取数据
string myData = TempData["myData"] as string;
return View();
}
}
public class MyController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult AnotherAction(string myData)
{
// 处理表单提交的数据
return View();
}
}
在View中,可以使用表单元素将数据提交到AnotherAction方法中:
通过这些方法,可以在ASP.NET MVC中解决控制器变量数据丢失的问题。