문제

문제

확인하는 적절한 방법은 무엇입니까 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 [ ""]를 사용하거나 반복하면 원하는 것을 찾을 수 있습니다. 다른 것들보다 정말 편리합니다.

도움이 필요하면 알려주세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top