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

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

在你看来写:

<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 回答
0

现有的解决方案都不适合我。这是我发现确实有效的另一个解决方案:

控制器:

TempData["SuccessMessage"] = "your message here";

看法:

let msg = '@TempData["SuccessMessage"]';
于 2021-10-20T20:37:44.643 回答