Classe ASP com JavaScript - lidar com a condição quando uma consulta parâmetro no Request.QueryString é falta [duplicado]

StackOverflow https://stackoverflow.com//questions/10673597

  •  12-12-2019
  •  | 
  •  

Pergunta

Possíveis Duplicados:
Descobrir se uma URL param existe na JS-ASP

isso pode ser muito fundamental, mas,

no código abaixo, se o ramo é para cobrir a situação anormal que o bater de solicitação de perder o parâmetro de consulta de "nome", como http://foo.com/bar.asp?foo=bar

<%@ language="javascript" %>

<html>
<head>
    <title>Hello ASP!</title>
</head>
<body>
    <%
        if (Request.QueryString("name") == undefined)
        {
            Response.Write("oops, give me your name!");
        }
        else
        {
            Response.Write("Hello " + Request.QueryString("name") + "!");
        }
    %>
</body>
</html>

mas se o ramo nunca foi inserido.A outra ramificação ocorre o tempo todo, e eu tenho "Olá indefinido!"cada vez.

Eu tentei substituir o indefinido com "" ou null, mas nada muda.

Eu procurei ao redor, mas tem coisas a falar ASP.NET/C# e JavaScript do lado do cliente.Apreciamos a sua ajuda!

ATUALIZADO:
OI, obrigado pela sua preocupação!Mas eu quero dizer ASP aproveitando o JavaScript para fazer a programação server-side.Eu atualizei os códigos acima.

Foi útil?

Solução

A maneira mais confiável para verificar se um parâmetro foi passado ou não é verificar o Count propriedade:

if (Request.QueryString("name").Count === 0) {
    // do whatever...
}

Isso funciona porque Request.QueryString(var) na verdade, retorna uma matriz como objeto que contém vários valores, se o mesmo parâmetro é especificado várias vezes na URL (por exemplo, http://example.com/test.asp?name=value1&name=value2).Você pode ler mais na documentação do MSDN:

http://msdn.microsoft.com/en-us/library/ms524784%28VS.90%29.aspx

Outras dicas

Talvez este seria o trabalho para você:

<script type="text/javascript">
// access the server-side response 
// and store it in a javascript variable
var myQueryString = '<%= Request.QueryString("name") %>';

// now write to the document using javascript only
if (myQueryString === "" ) {
   document.write("oops, give me your name!");
} else {
   document.write("Hello " + myQueryString + "!");
}
</script>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top