2013-09-16 34 views
0

我有三类如何保存温度数据在MVC

Person类

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; } 
} 

我从web服务得到Perosnal信息项目信息联系信息约Perosn (是PersonID)

我有一个四个选项卡在我的主页PersonProjectContact and 完成
我可以在每个TABS中显示数据。

万阿英,蒋达清案例:
1)用户编辑Perosnal信息页面信息,并点击保存。
2)然后编辑项目信息页面并点击保存。
3)然后编辑联系信息并点击保存。
4)然后进入完成标签上,然后点击完成编辑工作

当用户点击完成标签那么只有数据应保存在数据库中完成与编辑

我的问题是如何保存临时数据。
MVC中是否存在类似Session

+0

是的; MVC确实有会话。 – SLaks

回答

1

是的,你可以保存你的课程到类似这样的会话。

Session["name"] = yourObj; 
0

ASP.Net MVC仍然是一个ASP.Net应用程序,因此您可以使用Session。尽管我建议将其设置为无状态,并将用户的进度保存在数据库中。

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 
} 
0

在保存人信息页面的点击,你可以这样做:

会议[ “personInfo”] = personInfoObj;

并检索到底:

PersonInfoClass personInfoObj =(PersonInfoClass)会话[ “personInfo”];

(同样你也可以为其他页面做这个)