Dar*_*Zon 6 asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4
请看下面的动作.当用户第一次导航时,创建一个对象,然后当他在页面中导航时,再次访问Action但是通过Ajax请求和数据disapper(worksheets = null).
private static List<Worksheet> worksheets;
public ActionResult DoTest()
{
if (Request.IsAjaxRequest())
{
return PartialView("_Problems", worksheets[1]);
}
// first time
worksheets = new List<Worksheet>()
{
new Worksheet("Hoja 1", ...),
new Worksheet("Hoja 2", ...)
};
return View(worksheets[0]);
}
Run Code Online (Sandbox Code Playgroud)
我的第一个解决方案是将变量工作表设置为静态,但我认为这不是一个好习惯.我是在做一个好方法还是有另外一个tweeks?
远离静态变量,尤其是在数据依赖于用户的情况下.您可以利用ASP.NET Session对象.
通过将工作表字段更改为在Session对象中存储其值的属性,可以轻松完成此操作.这样,它将在后续调用中可用.例:
private List<Worksheet> worksheets
{
get{ return Session["worksheets"] as List<Worksheet>;}
set{ Session["worksheets"] = value; }
}
public ActionResult DoTest()
{
if (Request.IsAjaxRequest())
{
return PartialView("_Problems", worksheets[1]);
}
// first time
worksheets = new List<Worksheet>()
{
new Worksheet("Hoja 1", ...),
new Worksheet("Hoja 2", ...)
};
return View(worksheets[0]);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11223 次 |
最近记录: |