Programing

Request.QueryString에 ASP.NET에서 특정 값이 있는지 확인하는 방법은 무엇입니까?

lottogame 2020. 11. 7. 08:52
반응형

Request.QueryString에 ASP.NET에서 특정 값이 있는지 확인하는 방법은 무엇입니까?


나는이 error.aspx페이지를. 사용자가 해당 페이지를 방문하면 page_load()사용 하는 메소드 URL 에서 오류 경로를 가져오고 Request.QueryString["aspxerrorpath"]제대로 작동합니다.

그러나 사용자가 해당 페이지에 직접 액세스하면 aspxerrorpath거기에 없기 때문에 예외가 생성됩니다 .

있는지 여부를 어떻게 확인할 수 aspxerrorpath있습니까?


다음을 확인할 수 있습니다 null.

if(Request.QueryString["aspxerrorpath"]!=null)
{
   //your code that depends on aspxerrorpath here
}

매개 변수 값을 확인하십시오.

// .NET < 4.0
if (string.IsNullOrEmpty(Request.QueryString["aspxerrorpath"]))
{
 // not there!
}

// .NET >= 4.0
if (string.IsNullOrWhiteSpace(Request.QueryString["aspxerrorpath"]))
{
 // not there!
}

존재하지 않는 경우 값은입니다. null존재하지만 값이 설정되지 않은 경우 빈 문자열이됩니다.

null빈 문자열은 특정 상황에 적합하지 않기 때문에 위의 내용이에 대한 테스트보다 더 잘 맞을 것이라고 생각합니다 .


빈 QueryString을 확인하려면 Request.QueryString.HasKeys속성 을 사용해야 합니다.

키가 있는지 확인하려면 : Request.QueryString.AllKeys.Contains()

그런 다음 ist의 값을 얻고 isNullOrEmpty 등과 같이 원하는 다른 검사를 수행 할 수 있습니다.


다음을 시도 할 수도 있습니다.

if (!Request.QueryString.AllKeys.Contains("aspxerrorpath"))
   return;

string.IsNullOrEmpty(Request.QueryString["aspxerrorpath"]) //true -> there is no value

값이 있으면 반환됩니다.


보다 직접적인 접근 방식은 어떻습니까?

if (Request.QueryString.AllKeys.Contains("mykey")

문제를 해결하려면 페이지의 Page_Load 메소드에 다음 행을 작성하십시오.

if (String.IsNullOrEmpty(Request.QueryString["aspxerrorpath"])) return;

.Net 4.0은 null, 빈 또는 공백 문자열을 더 자세히 보여줍니다. 다음 줄에 표시된대로 사용하세요.

if(string.IsNullOrWhiteSpace(Request.QueryString["aspxerrorpath"])) return;

쿼리 문자열에 aspxerrorpath가 없으면 다음 문 (비즈니스 논리)이 실행되지 않습니다.


찾고있는 수표는 다음과 같습니다.

if(Request.QueryString["query"] != null) 

null해당 쿼리 문자열에 해당 키에 대한 값이 없기 때문에 반환 됩니다.

참고 URL : https://stackoverflow.com/questions/8678471/how-to-check-that-request-querystring-has-a-specific-value-or-not-in-asp-net

반응형