0

我有一个三班

人员类

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 (PersonID) 的网络服务获取Perosnal信息项目信息联系信息

我的主页PersonProjectContactFinish上有四个 TABS。 我能够在每个 TABS 中显示数据。

问题案例:
1)用户在个人信息页面编辑信息,点击保存。
2)然后编辑 项目信息页面并点击保存。
3)然后编辑联系信息并点击保存。
4)然后转到完成选项卡并单击完成编辑

当用户单击 完成选项卡的编辑完成时, 只有数据应该保存在数据库中。

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

4

4 回答 4

2

是的,您可以使用类似的方法将您的课程保存到会话中。

Session["name"] = yourObj;
于 2013-09-16T16:14:09.650 回答
0

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

于 2013-09-16T16:13:06.227 回答
0

首先,我应该声明您不应该在 Session 中存储临时数据。然而:

首先我们定义接口:

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
}
于 2013-09-16T16:13:50.863 回答
0

在保存单击人员信息页面时,您可以执行以下操作:

会话["personInfo"] = personInfoObj;

最后检索:

PersonInfoClass personInfoObj= (PersonInfoClass)Session["personInfo"];

(同样,您也可以对其他页面执行此操作)

于 2013-09-16T16:16:22.280 回答