web-dev-qa-db-ja.com

JSからViewBagにアクセスする方法

私が試みた方法。

ブラウザで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();
29
Doomsknight

かみそりエンジンテンプレートを使用している場合は、次を実行します

あなたの意見で書いてください:

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

PDATE:より適切なアプローチは、たとえば、ベース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>
63
amd

試してください:var cc = @Html.Raw(Json.Encode(ViewBag.CC)

8
ZeNo
<script type="text/javascript">
      $(document).ready(function() {
                showWarning('@ViewBag.Message');
      });

</script>

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

5
adt

これを行うことにより、ソリューションを実現できます。

JavaScript:

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

または、jQueryを使用する場合:

jQuery

var myValue = $('#' + '@(ViewBag.CC)').val();
3
Arsman Ahmad

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

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

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

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

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

3
gdoron