【发布时间】:2018-04-26 14:20:37
【问题描述】:
首先,我对 C# 和 ASP.NET(主要是 java 程序)还很陌生。
我有一个 BaseController,我想在其中填充一个 viewbag 以供我所有其他控制器使用。我还设置了一些会话数据并创建了一些 cookie。这是基本控制器:
public abstract partial class BaseController : Controller
{
// GET: Base
protected override void Initialize(RequestContext requestContext)
{
try
{
//Checks if the user is logged in
if (requestContext.HttpContext.Session["customer"] != null)
{
ViewBag.Customer = requestContext.HttpContext.Session["customer"];
ViewBag.Points = requestContext.HttpContext.Session["points"];
ViewBag.CardNumber = requestContext.HttpContext.Session["cardNumber"];
}
//Gets the products to be displayed
var products = ProductList.Instance.AsQueryable();
ViewBag.Products = products;
//Checks to see if the user has a cart added to his requestContext.HttpContext.Session
if (requestContext.HttpContext.Session["cart"] == null)
{
requestContext.HttpContext.Session["cart"] = new Cart();
}
Cart cart = (Cart)requestContext.HttpContext.Session["cart"];
ViewBag.CartCount = cart.Count();
if (requestContext.HttpContext.Session["ticketID"] == null)
{
requestContext.HttpContext.Session["ticketID"] = Guid.NewGuid();
}
//Adds a cookie to the user with his selected theme
HttpCookie cookieUserTheme = requestContext.HttpContext.Request.Cookies["cookieUserTheme"];
if (cookieUserTheme != null)
{
requestContext.HttpContext.Session["UserPref"] = UserModel.GetThemeByName(cookieUserTheme.Value);
}
else
{
requestContext.HttpContext.Session["UserPref"] = UserModel.GetThemeByName("5");
var cookie = new HttpCookie("cookieUserTheme", ((UserPref)requestContext.HttpContext.Session["UserPref"]).ID);
cookie.Expires = DateTime.Now.AddDays(90);
requestContext.HttpContext.Response.Cookies.Add(cookie);
}
ViewBag.UserPref = requestContext.HttpContext.Session["UserPref"];
}
catch (Exception ex)
{
throw ex;
}
}
}
}
这是控制器。
public class AdminController : BaseController
{
// GET: Admin
public ActionResult Index()
{
ViewBag.Themes = SiteMethods.GetAllThemes();
return View();
}
我做错了什么?我需要来自我的基本控制器的重定向吗?
【问题讨论】:
标签: asp.net asp.net-mvc