web-dev-qa-db-fra.com

Comment accéder à ViewBag depuis JS

Mes tentatives de méthodes.

En regardant le JS via un navigateur, le @ViewBag.CC est juste vide ... (manquant)

        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

si vous utilisez un modèle de moteur de rasoir, procédez comme suit

à votre avis, écrivez:

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

MISE À JOUR: Une approche plus appropriée consiste à définir un ensemble de configuration sur la disposition principale, par exemple, l'URL de base, la clé API Facebook, l'URL de base Amazon S3, etc ... `` '

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

Et vous pouvez l'utiliser dans votre code JavaScript comme suit:

<script>
  myProduct.fullUrl = AppConfig.awsUrl + myProduct.path;
  alert(myProduct.fullUrl);
</script>
63
amd

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

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

</script>

Vous pouvez utiliser ViewBag.PropertyName en javascript comme ceci.

5
adt

Vous pouvez obtenir la solution en procédant comme suit:

JavaScript:

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

ou si vous souhaitez utiliser jQuery, alors:

jQuery

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

ViewBag est côté serveur code.
Javascript est côté client code.

Vous ne pouvez pas vraiment les connecter.

Vous pouvez faire quelque chose comme ça:

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

Mais il sera analysé sur le serveur, vous ne les avez donc pas vraiment connectés.

3
gdoron