[英]How can I pull a value out of a QueryString-like string with C#
我有一個 ASP.NET 頁面,該頁面的值存儲在 session object 中。
我想為特定鍵提取一個值——但請記住它只是一個字符串。
以下面的字符串為例——從這個字符串中獲取“FOOBAR”的最佳方法是什么? 正則表達式是最好的方法嗎?
有時它可能會這樣出現:
"?facets=All Groups||Brand&TitleTag=FOOBAR#back"
其他時候它可能會這樣出現:
"?facets=All Groups||Brand&TitleTag=FOOBAR"
感謝 jglouie 提出使用“ParseQueryString”的想法——最終成功了。 您提供的代碼示例是一個好的開始。 以下是我的最終解決方案:
System.Collections.Specialized.NameValueCollection pairs = HttpUtility.ParseQueryString(facetStateOrURL);
string titleTagValue = pairs["TitleTag"];
if (!String.IsNullOrEmpty(titleTagValue) && titleTagValue.IndexOf('#') > -1)
{
titleTagValue = titleTagValue.Substring(0, titleTagValue.IndexOf('#'));
}
再次感謝您的幫助!
HttpUtility 的 ParseQueryString() 方法呢?
http://msdn.microsoft.com/en-us/library/ms150046.aspx
--
添加了 Jethro 建議的示例:
var string1 = "?facets=All Groups||Brand&TitleTag=FOOBAR#back";
var pairs = HttpUtility.ParseQueryString(string1);
string titleTagValue = pairs["TitleTag"];
if (!string.IsNullOrEmpty(titleTagValue) && titleTagValue.IndexOf('#') > -1)
{
titleTagValue = titleTagValue.Substring(0, titleTagValue.IndexOf('#'));
}
看起來您正在獲取頁面請求查詢字符串並將其添加到 session 容器中。 除了獲取整個查詢字符串並將其放入查看中,您難道不能只獲取您需要的查詢字符串部分並將其保存到特定的 session 鍵嗎?
例如:
Session["TitleTag"] = Request.QueryString["TitleTag"]
然后您可以在需要時引用 Session["TitleTag"] 。 這樣您就不必解析字符串,並且 session 中包含的數據更具自我描述性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.