0

私は次の方法を持っています:

public object[] GetEventsByUser(DateTime start, DateTime end, string fullUrl)

fullUrl の値は次のとおりです。

http://localhost:50435/page/view.aspx?si=00&us=admin&ut=smt&

私がする時:

NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);

私は得る:

{http%3a%2f%2flocalhost%3a50435%2fpage%2fview.aspx%3fsi=00&us=admin&ut=smt&}

しかし、このページの QueryString でパラメーターを取得する必要があります。この値では、クエリ文字列を開始する疑問符がエンコードされているため、「si」値を取得できません。だから私は思った:「うーん... HttpUtility.HtmlEncode()をやろうとするべきだ」

ただし、メソッド HtmlEncode は void を返します。ただし、このメソッドの 2 番目のパラメーターは値を TextWriter に送信します。しかし、それは NameValueCollection ではありません。

多分解決策は簡単です...しかし、私はそれを見ることができません。

4

2 に答える 2

1

次のように、解析する前にクエリ文字列だけにトリミングする必要があります。

if (fullUrl.Contains("?")) {
  fullUrl = fullUrl.Substring(fullUrl.IndexOf("?") + 1);
}
NameValueCollection qscoll = HttpUtility.ParseQueryString(fullUrl);
于 2010-03-05T21:56:57.873 に答える
1

あなたは試すことができます:

var si = Request["si"];
var user = Request["us"];
//etc.
于 2010-03-05T21:57:04.957 に答える