[面倒な質問でごめんなさい。.Net 2.0をターゲットにしていると思います(今のところ)]
こんにちは、私はASP.NETの初心者です。手始めに、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」はありません。別名aは構成ジェネレーターに渡されました。URL文字列/Cookieを確認してください。パラメータ「B」はありません。別名bが構成ジェネレータに渡されました。URL文字列/Cookieを確認してください。パラメータ「C」はありません。別名cが構成ジェネレータに渡されました。URL文字列/Cookieを確認してください。パラメータ「D」はありません。別名dが構成ジェネレータに渡されました。URL文字列/Cookieを確認してください。パラメータ「E」はありません。別名eが構成ジェネレータに渡されました。URL文字列/Cookieを確認してください。パラメータ「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が中止されていることを確認してください。構成ジェネレーターに渡されましたが、予期されていませんでした。URL文字列/Cookieを確認してください。パラメータ「HTTP_COOKIE」が設定ジェネレータに渡されましたが、予期されていませんでした。URL文字列/Cookieを確認してください。パラメータ"HTTP_HOST"が構成ジェネレータに渡されましたが、予期されていませんでした。URL文字列/Cookieを確認してください。パラメータ"HTTP_USER_AGENT"が構成ジェネレータに渡されましたが、予期されていませんでした。URL文字列/cookie.Threadが中止されていることを確認してください。構成ジェネレーターに渡されましたが、予期されていませんでした。URL文字列/Cookieを確認してください。パラメータ「HTTP_COOKIE」が設定ジェネレータに渡されましたが、予期されていませんでした。URL文字列/Cookieを確認してください。パラメータ"HTTP_HOST"が構成ジェネレータに渡されましたが、予期されていませんでした。URL文字列/Cookieを確認してください。パラメータ"HTTP_USER_AGENT"が構成ジェネレータに渡されましたが、予期されていませんでした。URL文字列/cookie.Threadが中止されていることを確認してください。URL文字列/Cookieを確認してください。パラメータ"HTTP_USER_AGENT"が構成ジェネレータに渡されましたが、予期されていませんでした。URL文字列/cookie.Threadが中止されていることを確認してください。URL文字列/Cookieを確認してください。パラメータ"HTTP_USER_AGENT"が構成ジェネレータに渡されましたが、予期されていませんでした。URL文字列/cookie.Threadが中止されていることを確認してください。
暗黙的パラメーターと明示的パラメーターを分離する方法はありますか、それとも実行できませんか?わざわざする必要がありますか?おそらく、getの哲学は、不要なものを捨てることです。
ありがとう!