0
我想在每個頁面上注入一些javascript;基本上,這是一個JSON字符串。在主頁面中注入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;); }
}
}
這種檢查是否會話中包含我需要的JSON序列化的數據。
我想要做的是將會話中的數據包含在每個頁面的JavaScript中。
在頁面的ASPX,我有:
<asp:ContentPlaceHolder id="head" runat="server">
<script type="text/javascript">
var TheJsonData =... ;
</script>
</asp:ContentPlaceHolder>
如何在那裏注入JSON數據?如果我這樣做,哪一個先執行? aspx注入或Page_Init函數?
我用下面的代碼序列化:
TheDataList = (List<MyModel>)Session["TheData"];
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RegisterConverters(new JavaScriptConverter[] { new MyModel() });
String result = serializer.Serialize(TheDatatList);
我希望能夠做的是$(文件)。就緒(函數(){ShowData(TheJsonData)});當文檔就緒事件觸發時已經加載了變量TheJsonData。
謝謝。
這是說無法找到命名空間的JavascriptSerializer。在母版頁後面的代碼中,我使用了System.Web.Script.Serialization;我在哪裏可以使用aspx頁面? – frenchie 2011-03-01 21:08:27
最上面:'<%@ Import Namespace =「System.Web.Script.Serialization」%>'。或者直接輸入:'<%= new System.Web.Script.Serialization.JavaScriptSerializer()...'。另外不要忘記在你的項目中引用'System.Web.Extensions'程序集,這是聲明這個類的地方。 – 2011-03-01 21:09:12
好的,太棒了!我從contentplaceholder中刪除了javascript,它工作。謝謝! – frenchie 2011-03-01 21:13:37