Classe ASP com JavaScript - lidar com a condição quando uma consulta parâmetro no Request.QueryString é falta [duplicado]
-
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.
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>