35

私の試みた方法。

ブラウザ経由でJSを見ると、@ViewBag.CC空白です...(欠落)

        var c = "#" + "@ViewBag.CC";
        var d = $("#" + "@ViewBag.CC").value;
        var e = $("#" + "@ViewBag.CC").val();

        var c = "@ViewBag.CC";
        var d = $("@ViewBag.CC").value;
        var e = $("@ViewBag.CC").val();
4

6 に答える 6

69

Razor エンジン テンプレートを使用している場合は、次の手順を実行します。

あなたの見解で書く:

<script> var myJsVariable = '@ViewBag.MyVariable' </script>

更新: より適切なアプローチは、マスター レイアウトで一連の構成を定義することです。たとえば、ベース URL、Facebook API キー、Amazon S3 ベース URL など ...```

<head>
 <script>
   var AppConfig = @Html.Raw(Json.Encode(new {
    baseUrl: Url.Content("~"),
    fbApi: "get it from db",
    awsUrl: "get it from db"
   }));
 </script>
</head>

そして、次のように JavaScript コードで使用できます。

<script>
  myProduct.fullUrl = AppConfig.awsUrl + myProduct.path;
  alert(myProduct.fullUrl);
</script>
于 2012-04-04T09:06:33.983 に答える
12

試す: var cc = @Html.Raw(Json.Encode(ViewBag.CC)

于 2012-04-04T09:08:55.540 に答える
9
<script type="text/javascript">
      $(document).ready(function() {
                showWarning('@ViewBag.Message');
      });

</script>

このように JavaScript で ViewBag.PropertyName を使用できます。

于 2012-04-04T09:06:14.843 に答える
4

ViewBagサーバー側のコードです。クライアント側のコードです
Javascript

それらを実際に接続することはできません。

次のようなことができます。

var x = $('#' + '@(ViewBag.CC)').val();

ただし、サーバー上で解析されるため、実際には接続していません。

于 2012-04-04T09:04:26.243 に答える
3

これを行うことで、解決策を達成できます。

JavaScript:

var myValue = document.getElementById("@(ViewBag.CC)").value;

を使用する場合は、次のようにしますjQuery

jQuery

var myValue = $('#' + '@(ViewBag.CC)').val();
于 2017-01-10T12:10:55.600 に答える