gpt4 book ai didi

javascript - 在母版页中注入(inject)json数据

转载 作者:行者123 更新时间:2023-12-02 20:23:49 29 4
gpt4 key购买 nike

我想在每个页面上注入(inject)一些javascript;基本上,它是一个 json 字符串。

在我的母版页中,我有这个:

public partial class TheMasterPage : System.Web.UI.MasterPage
{
protected void Page_Init(object sender, EventArgs e)
{
if (Session["TheData"] == null)
{Session["TheData"] = GetData(DateTime.Today.Date;); }
}
}

这会检查 session 是否包含 json 序列化所需的数据。

我想做的是将 session 中的数据包含在每个页面的 javascript 中。

在页面的aspx中,我有:

<asp:ContentPlaceHolder id="head" runat="server">
<script type="text/javascript">
var TheJsonData =... ;
</script>
</asp:ContentPlaceHolder>

如何将 json 数据注入(inject)其中?如果我这样做,哪个先执行? aspx注入(inject)还是Page_Init函数?

我使用以下代码进行序列化:

TheDataList = (List<MyModel>)Session["TheData"];

JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RegisterConverters(new JavaScriptConverter[] { new MyModel() });
String result = serializer.Serialize(TheDatatList);

我想要做的是 $(document).ready(function () {ShowData(TheJsonData) });当文档就绪事件触发时,变量 TheJsonData 已经加载。

谢谢。

最佳答案

尝试这样:

<script type="text/javascript">
var TheJsonData = <%= new JavaScriptSerializer().Serialize(Session["TheData"]) %>;
</script>

最终结果应该如下所示:

<script type="text/javascript">
var TheJsonData = [{ prop1: 'value1', prop2: 'value2' }, { prop1: 'value3', prop2: 'value4' }];
</script>

Page_Init 将在 View 中的代码之前运行,并在 session 中设置值。

关于javascript - 在母版页中注入(inject)json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160266/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com