[對不起,一個凌亂的問題。我相信我的目標。NET 2.0(現在)]ASP.Net如何執行HTTP get URL格式?
嗨,我是一個ASP.NET的noob。對於初學者,我構建了一個分析URL字符串並在數據庫中填充表的頁面。我想該字符串是嚴格的形式:
http://<server>:<port>/PageName.aspx?A=1&B=2&C=3&D=4&E=5
的參數的順序並不重要,我只是不想讓任何人失蹤,或任何額外消費。這是我想什麼(是的,這是醜陋的,我只想得到它的第一個工作):
#if (DEBUG)
// Maps parameter names to their human readable names.
// Used for error checking.
private static Dictionary<string, string> paramNameToDisplayName = new Dictionary<string, string> {
{ "A", "a"},
{ "B", "b"},
{ "C", "c"},
{ "D", "d"},
{ "E", "e"},
{ "F", "f"},
};
[Conditional("DEBUG")]
private void validateRequestParameters(HttpRequest request)
{
bool endResponse = false;
// Use foreach var
foreach (string expectedParameterName in paramNameToDisplayName.Keys)
{
if (request[expectedParameterName] == null)
{
Response.Write(String.Format("No parameter \"{0}\", aka {1} was passed to the configuration generator. Check your URL string/cookie.",
expectedParameterName, paramNameToDisplayName[expectedParameterName]));
endResponse = true;
}
}
// Use foreach var
foreach (string actualParameterName in request.Params)
{
if (!paramNameToDisplayName.ContainsKey(actualParameterName))
{
Response.Write(String.Format("The parameter \"{0}\", was passed to the configuration generator, but it was not expected. Check your URL string/cookie.",
actualParameterName));
endResponse = true;
}
}
if (endResponse)
{
Response.End();
}
}
#endif
,它工作正常,但它抱怨各種其他的東西:
http://localhost:1796/AddStatusUpdate.aspx?X=0
無參數 「A」,又名一個被傳遞給配置生成。檢查你的URL字符串/ cookie.No參數「B」,又名b被傳遞給配置生成器。檢查您的URL字符串/ cookie.No參數「C」,又名c被傳遞給配置生成器。檢查你的URL字符串/ cookie.No參數「D」,又名d被傳遞給配置生成器。檢查您的URL字符串/ cookie.No參數「E」,也就是e被傳遞給配置生成器。檢查你的URL字符串/ cookie.No參數「F」,又名f被傳遞給配置生成器。檢查您的URL字符串/ cookie。參數「X」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「ASP.NET_SessionId」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「ALL_HTTP」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「ALL_RAW」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「APPL_MD_PATH」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「APPL_PHYSICAL_PATH」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「AUTH_TYPE」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「AUTH_USER」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「AUTH_PASSWORD」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「LOGON_USER」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「REMOTE_USER」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「CERT_COOKIE」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「CERT_FLAGS」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「CERT_ISSUER」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「CERT_KEYSIZE」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「CERT_SECRETKEYSIZE」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「CERT_SERIALNUMBER」,已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「CERT_SERVER_ISSUER」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「CERT_SERVER_SUBJECT」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「CERT_SUBJECT」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「CONTENT_LENGTH」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「CONTENT_TYPE」已傳遞給配置生成器,但不是預期的。檢查你的URL字符串/ cookie。參數「GATEWAY_INTERFACE」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTPS」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTPS_KEYSIZE」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTPS_SECRETKEYSIZE」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTPS_SERVER_ISSUER」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTPS_SERVER_SUBJECT」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「INSTANCE_ID」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「INSTANCE_META_PATH」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「LOCAL_ADDR」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「PATH_INFO」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「PATH_TRANSLATED」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「QUERY_STRING」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「REMOTE_ADDR」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「REMOTE_HOST」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「REMOTE_PORT」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「REQUEST_METHOD」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「SCRIPT_NAME」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「SERVER_NAME」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「SERVER_PORT」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「SERVER_PORT_SECURE」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「SERVER_PROTOCOL」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「SERVER_SOFTWARE」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「URL」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_CACHE_CONTROL」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_CONNECTION」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_ACCEPT」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie.參數「HTTP_ACCEPT_CHARSET」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_ACCEPT_ENCODING」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_ACCEPT_LANGUAGE」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_COOKIE」已傳遞給配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_HOST」已傳遞到配置生成器,但不是預期的。檢查您的URL字符串/ cookie。參數「HTTP_USER_AGENT」已傳遞到配置生成器,但不是預期的。檢查你的URL字符串/ cookie.Thread正在中止。
是否有某種方式爲我分開的隱性和顯性的參數,或者是不是可行?我應該甚至打擾嗎?也許get的哲學就是拋棄那些不需要的東西。
謝謝!
謝謝!原來我需要泛型和Linq來實現這個功能。 – 2010-04-20 17:18:56
問題:我如何獲得Contains與不區分大小寫的比較器一起工作?我看到了第二個參數的選項;我只是不知道哪個泛型類實現了這個接口,並做我想要的。謝謝! –
2010-04-20 22:37:25
請求.QueryString.AllKeys.Contains(expectedParameterName,StringComparer.InvariantCultureIgnoreCase) –
derek
2010-04-20 23:24:52