javascript - .Net MVC 将 ViewBag 值分配给 JavaScript 脚本变量问题

标签 javascript asp.net-mvc viewbag

我正尝试像这样使用 View Bag 从我的 Controller 操作发送一个字符串值到我的 View

 public ActionResult Services()
    {

        ViewBag.TabVal = "EarnMoney";
        return View();
    }

在我看来,我正在将 View Bag 值分配给这样的 JavaScript 变量

 @section scripts{

<script>
    var tab = @ViewBag.TabVal;
    console.log(tab);
 </script>
}

在我的控制台上我得到这个值

    <li id="EarnMoney"> EarnMoney</li>

在我看来这是一个 HTML 元素。

为什么它在我的 View 中选择元素而不返回字符串?这真的很奇怪。

最佳答案

您直接将 viewbag 值输出到 javascript,没有引号,所以它不是 javascript 中的字符串。 从服务器生成的 HTML 如下所示:

var tab = EarnMoney;

因为有一个带有那个 id 的 dom 元素,所以它选择那个元素来代替

像这样将您的 ViewBag 输出放在引号中:

var tab = "@ViewBag.TabVal";

关于javascript - .Net MVC 将 ViewBag 值分配给 JavaScript 脚本变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31449473/

相关文章:

javascript - 使用 javascript 附加 div 元素

javascript - 在 P 元素中禁用 HREF

asp.net-mvc - 我应该在 Controller 中使用 Entity Framework 类还是模型类?

c# - 将 DropDownListFor 与 ViewModel 上的列表绑定(bind)

javascript - 如何使用 ViewBag 中的 JSON 填充 javascript 变量?

javascript - vue.js - 转换转换不工作

javascript - 按索引切换单词

c# - 如果您的 MVC 依赖项解析器已设置为使用 ninject,是否有任何理由使用 SignalR.Ninject?

asp.net-mvc - mvc 编辑器模板结果被缓存

asp.net-mvc-4 - MVC4 ViewBag 还是 ViewModel 还是?