强类型会话对象根据各种来源网上,我应该用这个MVC引用我的观点
public static class SessionExtensions
{
/// <summary>
/// Get value.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="session"></param>
/// <param name="key"></param>
/// <returns></returns>
public static T GetDataFromSession<T>(this HttpSessionStateBase session, string key)
{
return (T)session[key];
}
/// <summary>
/// Set value.
/// </summary>
/// <param name="session"></param>
/// <param name="key"></param>
/// <param name="value"></param>
public static void SetDataToSession(this HttpSessionStateBase session, string key, object value)
{
session[key] = value;
}
}
要使用会话对象的MVC。 我已经做了以下BaseController
public class BaseController : Controller
{
public int UserID
{
get { return Session.GetDataFromSession<int>("UserID"); }
set { Session.SetDataToSession("UserID", value); }
}
}
我现在继承BaseController
public class RequestsController : BaseController
{
private FooModel db = new FooModel();
// GET: Requests
public ActionResult Index()
{
var viewModel = Mapper.RequestIndex(UserID);
return View(viewModel);
}
}
,我可以使用用户名会话对象没有问题。
如何在我的视图中使用相同的会话对象,而无需将其添加到模型中。
<div class="clearfix">
@if (Session["UserID"].ToString() == "1")
{
<div class="btn btn-default pull-right ">
@Html.ActionLink("Super Special link for User 1", "sslfu1")
</div>
}
</div>
Session["UserID"]
在这里不正确。我应该使用什么?
“不正确”是什么意思?你是否交叉检查Session是否被设置? – ramiramilu