如何从JS访问ViewBag

时间:2012-04-04 09:02:33

标签: c# javascript asp.net asp.net-mvc-3 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();

5 个答案:

答案 0 :(得分:61)

如果您使用的是razor引擎模板,请执行以下操作

在你的视图中写道:

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

<强>更新 更合适的方法是在主布局上定义一组配置,例如base url,facebook API Key,Amazon S3 base 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>

答案 1 :(得分:8)

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

答案 2 :(得分:5)

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

</script>

您可以在javascript中使用ViewBag.PropertyName。

答案 3 :(得分:3)

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

您无法真正连接它们。

您可以这样做:

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

但它会在服务器上解析,所以你没有真正连接它们。

答案 4 :(得分:3)

您可以通过以下方式实现解决方案:

<强> JavaScript的:

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

或者如果您想使用jQuery,那么:

<强>的jQuery

var myValue = $('#' + '@(ViewBag.CC)').val();
相关问题