在我的page1.aspx.cs中我有这个
resultsHtml.Append("<a class='btn btn-warning' href='report.aspx?asset=" + rd["n_asset_id"].ToString() + "'><i class='fa fa-paw'></i></a> ");
所以在我的report.aspx中,我会抓住价值。
Session["passThis"] = Request.QueryString["asset"];
然而,在我的action.cs中,我创建了一个用于存储列表的类。我正在考虑在那里添加一个会话,但每次我store()
它都会创建另一个List。
public static void store() {
List<string> ast = new List<string>();
}
我怎样才能实现这一壮举?我的想法已经不多了。
答案 0 :(得分:1)
我认为最好的方法是将资产列表提取到属性中(这样您就可以从代码的其他部分轻松访问它。在属性获取器中,代码检查会话中是否有列表。
在Store
方法中,您可以访问资产列表(List<string
),如果当前请求中有asset
参数,则将其添加到您的资产列表中。请注意,由于Session
metod / property,访问HttpContext.Current.Session
是通过static
完成的。
public static void Store()
{
string assetValue = HttpContext.Current.Request["asset"];
if (!string.IsNullOrEmpty(assetValue))
AssestsList.Add(assetValue);
}
public static List<string> AssestsList
{
get
{
if (HttpContext.Current.Session["assets"] == null)
{
HttpContext.Current.Session["assets"] = new List<string>();
}
return HttpContext.Current.Session["assets"] as List<string>;
}
set
{
HttpContext.Current.Session["assets"] = value;
}
}
所以,要使用它,只需从代码中调用Store()
。
如果您有任何问题,请随时提出。