JavaScript を使用したクラス ASP - Request.QueryString のクエリ パラメーターが欠落している場合の条件を処理する [重複]

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

  •  12-12-2019
  •  | 
  •  

質問

重複の可能性:
URLパラメータがJS-ASPに存在するかどうかを確認する

これは非常に基本的なことかもしれませんが、

以下のコードでは、if 分岐は、ヒットしたリクエストが "name" のクエリ パラメータを欠落しているという異常な状況をカバーするためのものです。 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>

しかし、if ブランチには決して入っていません。else 分岐は毎回発生し、「未定義さん、こんにちは!" 毎回。

未定義を次のものに置き換えようとしました "" または ヌル, 、しかし何も変わりません。

いろいろ調べてみたのですが、ASP.NET/C# とクライアントサイド JavaScript についての話が出てきました。あなたの助けに感謝!

更新しました:
こんにちは皆さん、ご心配いただきありがとうございます!ただし、JavaScript を利用してサーバー側プログラミングを行う ASP のことを指します。上記のコードを更新しました。

役に立ちましたか?

解決

パラメータが渡されたかどうかを確認する最も信頼できる方法は、 Count 財産:

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

これが機能する理由は、 Request.QueryString(var) URL 内で同じパラメータが複数回指定されている場合、実際には複数の値を含む配列のようなオブジェクトを返します (例: http://example.com/test.asp?name=value1&name=value2)。詳細については、MSDN ドキュメントを参照してください。

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

他のヒント

おそらくこれはあなたにとってうまくいくでしょう:

<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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top