1

@(ViewData["value"]);inを使用する必要がありますdocument.ready。しかし、 @(ViewData["value"])すべてのjQueryを使用すると機能しません。以下に示す私のサンプル:

$(document).ready(function () {
    var test = @(ViewData["value"]); // remove this line query has been working 
    if (test != null){
        //my code
    }
});
4

4 に答える 4

3

@(ViewData["value"]);javascript内にアクセスする代わりに、その値を非表示フィールドまたは他の要素内に配置することをお勧めします。以下のコードを見てください:

<input id="some-id" type="hidden" value="@(ViewData["value"]);" />

...
...
...
$(document).ready(function () {
    var test = $("#some-id");
    if (test != null){
       //my code
    }
});
于 2013-02-28T04:48:36.537 に答える
2

If using C# inside script tag you need to enclose the C# variable in quotes. Try

 $(document).ready(function () {
         var test = '@(ViewData["value"])'; 
           if (test != null){
     }
    });

If the value of your ViewData["value"] is number it's okay if you don't enclose it in quotes but if it is string with spaces for example ViewData["value"]="Hello World" your browser will get an error saying "SyntaxError: missing ; before statement" that's why your scripts or jquery will no longer work.

于 2013-02-28T04:49:59.573 に答える
1

ViewDataは、ビューレンダリングにのみ存在するため、クライアントではアクセスできません。可能なオプション

  1. ビューデータをサーバー側のjsonにシリアル化します
  2. それを隠しフィールドに書き込み、クライアント側のjavascriptオブジェクトに解析します。
于 2013-02-28T04:48:28.497 に答える
0

あなたViewData["value"]がである場合、あなたはstringこれを試すことができます:

var test = '@ViewData["value"]';
于 2013-02-28T04:58:55.443 に答える