ASP.NET- 빈 쿼리 스트링 매개 변수
-
03-07-2019 - |
문제
문제
확인하는 적절한 방법은 무엇입니까 foo
ASP.NET을 사용하여 다음 URL 쿼리 스트링의 매개 변수? 이것이 가능합니까?
http://example.com?bar=3&foo
나는 확인을 시도했다 Request["foo"]
만큼 잘 Request.QueryString["foo"]
그리고 나는 얻는다 null
모두. 나는 또한 채워서 시도했다 List
값으로 QueryString
컬렉션이지만 아래에 언급 한 바와 같이, 여기에는 값이 포함되어 있지 않습니다.
질문
나는 가치가 없다는 것을 이해하지만 Request["foo"]
비어있는 문자열을 반환하십시오 null
? QueryString 키가 가치가 없더라도 존재하는지 확인할 수있는 방법이 있습니까?
메모
나는 찾았다 여기 저것 Request.QueryString.AllKeys
포함 null
빈 쿼리 스트링 매개 변수의 경우.
편집하다
아래에 언급 한 바와 같이 제임스 그리고 드레스 RAW URL을 구문 분석하는 동정인은 최상의 (그리고 아마도) 접근 방식 일 수 있습니다.
Regex.IsMatch(Request.RawUrl, "[?&]thumb([&=]|$)")
해결책
당신이 사용할 수있는 null
의 열쇠로 NameValueCollection
또한 값이없는 쉼표로 지정된 매개 변수 이름 목록을 제공합니다.
을 위한 http://example.com?bar=3&foo
당신은 사용할 것입니다 Request.QueryString[null]
그리고 그것은 회수 할 것입니다 foo
.
값이없는 매개 변수 이름이 둘 이상인 경우 쉼표로 분류 된 값이 제공됩니다.
을 위한 http://example.com?bar=3&foo&test
당신은 얻을 것입니다 foo,test
가치로.
업데이트:
실제로 사용할 수 있습니다 Request.QueryString.GetValues(null)
값이없는 매개 변수 이름을 얻으려면
다른 팁
Request.ServerVariables["QUERY_STRING"]
문자열로 쿼리 문자열을 완료합니다. 그런 다음 Regex 또는 Indexof를 사용하여 검색하십시오
당신은 null이기 때문에 foo
매개 변수에는 값이 없습니다.
... 정확히 문제는 무엇입니까?
여전히 그 존재를 확인하고 싶다면 (가치가 부족하지만) 다음과 같은 것을 시도하십시오.
bool doesFooExist = Request.Url.AbsoluteUri.IndexOf("foo=") >= 0 ? true : false;
드레스가 맞습니다. 변수 "바"는 값이 있지만 Foo는 그렇지 않습니다.
QueryString [ "Bar"]은 변수 막대와 관련된 값 3을 갖기 때문에 3을 반환합니다. 그러나 Foo는 가치가없고 변수 또는 키에서 QueryString을 호출 할 때 키가 아닌 값을 쿼리하는 것이므로 NUL은 NULL을 반환합니다. 따라서 NULL을 반환하는 이유입니다.
쿼리 문자열은 아마도 폐기물 일 것입니다. request.params [ ""]를 사용하거나 반복하면 원하는 것을 찾을 수 있습니다. 다른 것들보다 정말 편리합니다.
도움이 필요하면 알려주세요.