【问题标题】:Populate javascript variable from ViewBag?从 ViewBag 填充 javascript 变量?
【发布时间】:2015-01-19 16:49:23
【问题描述】:

我在 stackoverflow 上看到我们可以这样做来用 ViewBags(带剃刀)填充 js 变量:

@{
    var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
    var userInfoJson = jss.Serialize(ViewBag.User);
 }

用这个:

<script>
 //use Json.parse to convert string to Json
  var userInfo = JSON.parse('@Html.Raw(userInfoJson)');
</script>

我想用 aspx 而不是 razor 做同样的事情。你能帮帮我吗?

【问题讨论】:

  • '@Html.Raw(userInfoJson)' ---> ''
  • 你不需要 JSON.parse
  • @userfloflo 您要的是 ASP.Net Web 表单 还是 ASPX 视图引擎

标签: javascript asp.net asp.net-mvc json viewbag


【解决方案1】:

在我的控制器中:

Viewbag.test="Thanks to you it works!"

在我的 aspx 中:

public String test {get; set;}
protected void Page_Load(object sender, EventArgs e)
{
  test = ViewBag.test; 
}

<script>
  alert('<%=test%>');
</script>

结果:感谢你,它成功了!

【讨论】:

    【解决方案2】:

    向您的页面添加一个 public 属性并在页面加载时填充它(您可能必须在页面初始化时执行此操作,我不记得先执行哪个进程)。

    public UserType UserToSerialize {get; set;}
    
    protected void Page_Load(object sender, EventArgs e)
    {
        UserToSerialize = LoadUser(); //I assume you've got some magic to do this already
    }
    

    标记:

    <script>
      var userInfo = JSON.parse("<%# new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(UserToSerialize) %>");
    </script>
    

    注意我使用UserToSerialize 是为了避免干扰Page.User property

    【讨论】:

      猜你喜欢
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多