创建一个basic类型的Project.
A.控制器相关文件:
HomeControlle.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcSessionTest.Controllers
{
public class HomeController : Controller
{
// GET: /Home/
public ActionResult Index()
{
return View();
}
[NonAction]
public int Add(int b)
{
int a = int.Parse(Session["a"].ToString());
return a + b;
}
public ActionResult Who()
{
Session["Name"] = "我是张三";
Session["a"] = 1;
int a ;
a=Add(2);
return RedirectToAction("Show", "Other", new { i = a });
}
public ActionResult Abandon()
{
Session.Abandon();
return View("Index");
}
}
}
OtherController.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcSessionTest.Controllers
{
public class OtherController : Controller
{
//
// GET: /Other/
public ActionResult Index()
{
return View();
}
public ActionResult Show(int i)
{
ViewBag.i =i.ToString();
return View();
}
}
}
B.Views/Home下文件:Index.cshtml:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@{
if(Session["Tip"]!=null&&Session["Tip"].ToString()!="")
{
<p>@Session["Tip"].ToString()</p>
}
if (Session["Name"] != null && Session["Name"].ToString() != "")
{
<p>@Session["Name"].ToString()</p>
}
}
@Html.ActionLink("Who?", "Who")
@Html.ActionLink("Abandon","Abandon","Home")
Views/Other下的文件:Show.cshtml:
@{
ViewBag.Title = "Show";
}
<h2>Show</h2>
<hr />
@ViewBag.i
<hr />
@Session.SessionID
<hr />
@Session["Tip"].ToString()
<hr />
@Session["Name"].ToString()
<hr />
@Html.ActionLink("Index", "Index", "Home")
C.Global.asax.cs文件中添加:
protected void Session_Start(object sender, EventArgs e)
{
Random r= new Random();
int i = r.Next(1000);
Session["Tip"] = "有一个人登录,随机数:"+i.ToString()+" SessionID:"+Session.SessionID;
}
protected void Session_End(object sender, EventArgs e)
{
}