[对不起一个乱七八糟的问题。我相信我的目标是 .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 是否被中止。
我有什么方法可以将隐式参数和显式参数分开,还是不可行?我应该打扰吗?也许得到的哲学就是扔掉不需要的东西。
谢谢!