如何从JS访问ViewBag(How do I access ViewBag from JS)

2019-06-23 08:42发布

我尝试的方法。

纵观通过浏览器的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();

Answer 1:

如果您使用的剃刀引擎模板然后执行以下操作

在你看来写:

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

更新:一个更合适的方法是定义在主布局例如,基本URL,脸谱API密钥,亚马逊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>


Answer 2:

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



Answer 3:

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

</script>

您可以在JavaScript中使用ViewBag.PropertyName这样。



Answer 4:

ViewBag服务器端的代码。
Javascript客户端代码。

真的无法将它们连接起来。

你可以这样做:

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

但是,它会被解析的服务器上,所以你并没有真正将它们连接起来。



Answer 5:

你可以实现的解决方案,这样做:

JavaScript的:

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

或者,如果你想使用jQuery ,则:

jQuery的

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


文章来源: How do I access ViewBag from JS