sourcecode

해당 요청을 확인하는 방법.QueryString이 ASP.NET에 특정 값을 가지고 있습니까?

copyscript 2023. 7. 3. 23:06
반응형

해당 요청을 확인하는 방법.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()

그런 다음 리스트의 값을 가져와서 isNullOrEmpty 등 원하는 다른 검사를 수행할 수 있습니다.

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

if (!Request.QueryString.AllKeys.Contains("aspxerrorpath"))
   return;
string.IsNullOrEmpty(Request.QueryString["aspxerrorpath"]) //true -> there is no value

값이 있으면 반환됩니다.

좀 더 직접적인 접근법은 어떻습니까?

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

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

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

돌아옵니다null이 쿼리 문자열에는 해당 키에 대한 값이 없기 때문입니다.

문제를 해결하려면 페이지의 Page_Load 메서드에 다음 행을 작성합니다.

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

.Net 4.0은 null, 빈 문자열 또는 공백 문자열을 더 자세히 볼 수 있도록 제공합니다. 다음 줄과 같이 사용하십시오.

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

쿼리 문자열에 spx 오류 경로가 없는 경우 다음 문(비즈니스 논리)이 실행되지 않습니다.

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

반응형