我有三个班级
人员类
Public class Person
{
public string PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List<Project> Projects { get; set; }
public List<Contact> Contacts { get; set; }
}
项目类
Public class Project
{
public string ProjectNo { get; set; }
public string ProjectName { get; set; }
}
联系班级
Public class Contact
{
public string ContactNo { get; set; }
public string ContactName { get; set; }
}
我从网络服务获取关于Perosn的 Perosnal信息,项目信息和联系信息 (是PersonID)
我的主页上有四个TABS 人,项目,联系和完成< / strong>即可。
我可以在每个TABS中显示数据。
Probelm案例:
1)用户在 Perosnal信息页面中编辑信息并单击保存
2)然后编辑项目信息页面并单击保存
3)然后编辑联系信息并点击保存。
4)然后继续完成标签,然后点击完成修改
当用户在完成标签中点击完成编辑时,只有数据应保存在数据库中。
我的疑问是如何保存临时数据
MVC中是否存在Session
之类的内容?
答案 0 :(得分:1)
是的,您可以使用类似的内容将课程保存到会话中。
Session["name"] = yourObj;
答案 1 :(得分:0)
ASP.Net MVC仍然是一个ASP.Net应用程序,因此您可以使用Session。虽然我建议将其设置为无状态并改为在数据库中保存用户的进度。
答案 2 :(得分:0)
在此之前,我应该声明您不应该在会话中存储临时数据。但是:
首先我们定义接口:
public interface ISessionWrapper
{
int SomeInteger { get; set; }
}
然后我们进行HttpContext实现:
public class HttpContextSessionWrapper : ISessionWrapper
{
private T GetFromSession<T>(string key)
{
return (T) HttpContext.Current.Session[key];
}
private void SetInSession(string key, object value)
{
HttpContext.Current.Session[key] = value;
}
public int SomeInteger
{
get { return GetFromSession<int>("SomeInteger"); }
set { SetInSession("SomeInteger", value); }
}
}
然后我们定义我们的基本控制器:
public class BaseController : Controller
{
public ISessionWrapper SessionWrapper { get; set; }
public BaseController()
{
SessionWrapper = new HttpContextSessionWrapper();
}
}
最后:
public ActionResult SomeAction(int myNum)
{
SessionWrapper.SomeInteger
}
答案 3 :(得分:0)
点击保存后点击个人信息页面即可:
Session [“personInfo”] = personInfoObj;
最后检索:
PersonInfoClass personInfoObj =(PersonInfoClass)Session [“personInfo”];
(同样,您也可以为其他页面执行此操作)