我的应用程序是一个在线订单接受应用程序。
我想知道什么是装车的正确方法。虽然我以这种方式使用会话。
我创建了一个单独的sessionManaging
类,在那里我有属性可以像这样保存会话:
public static List<custHeader> currOrderItemCustomizationSession
{
get
{
if (HttpContext.Current.Session["currOrderItemCustomization"] != null)
return ((List<custHeader>)HttpContext.Current.Session["currOrder"]);
else
HttpContext.Current.Session["currOrderItemCustomization"] =
new List<custHeader>();
return (List<custHeader>)
HttpContext.Current.Session["currOrderItemCustomization"];
}
set
{
HttpContext.Current.Session["currOrderItemCustomization"] = value;
}
}
还有其他属性,如currOrder
、currOrderItem
、currOrderItemCustomization
,我也对它们应用了相同的会话思想。
但是当我设置会话并尝试在控制器中访问时,它总是为空。
public ActionResult GetProductCustomization(int pId)
{
List<custHeader> custHeader =
reposCustomization.GetHeaderCustomization(pId);
cOrderSession.currOrderItemCustomizationSession = custHeader;
return PartialView("_customization", custHeader);
}
在这里,当我使用断点检查它时cOrderSession.currOrderItemCustomizationSession
我发现这总是空的。
问题出在我的代码本身
return ((List<custHeader>)HttpContext.Current.Session["currOrder"]);
假设是
return ((List<custHeader>)HttpContext.Current.Session["currOrderItemCustomization"]);