将asp.net值传递给javascript块
发布时间:2020-12-16 09:50:02 所属栏目:asp.Net 来源:网络整理
导读:我需要将我的asp.net代码中的值传递给页面中的 javascript代码块. 我知道至少有两种方法可以做到这一点: script runat=serverint a = 42;protected override void OnInit(EventArgs e){ lbl.Text = "42";}/scriptscript var a = %= a %; var b = asp:Litera
我需要将我的asp.net代码中的值传递给页面中的
javascript代码块.
我知道至少有两种方法可以做到这一点: <script runat=server> int a = 42; protected override void OnInit(EventArgs e) { lbl.Text = "42"; } </script> <script> var a = <%= a %>; var b = <asp:Literal runat=server id=lbl>/>; alert("the meaning of life=" + a + " or " + b); </script> 但是在asp.net WebForms中有更好的方法将asp.net代码中的变量值绑定到javascript块吗?这两个看起来都很混乱,因为它们不支持intellisense. 解决方法
我最终做了一些我认为更强大的事情.在母版页中我添加了这个:
public Dictionary<string,object> JavaScriptVars { get; set; } 然后我将此函数的结果追加到页面: public string GetJavaScriptVars() { if (JavaScriptVars.Count == 0) return null; StringBuilder sb = new StringBuilder(); sb.Append("<script>"); System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); int i = 0; foreach (string s in JavaScriptVars.Keys) { if (i == 0) sb.Append("var "); sb.Append(s + "="); object o = JavaScriptVars[s]; if (o is System.Collections.Specialized.NameValueCollection) { Dictionary<string,string> dict = new Dictionary<string,string>(); foreach (string key in ((System.Collections.Specialized.NameValueCollection)o).Keys) dict[key] = ((System.Collections.Specialized.NameValueCollection)o)[key]; o = dict; } sb.Append(serializer.Serialize(o)); sb.Append(i == JavaScriptVars.Count - 1 ? ";" : ","); i++; } sb.Append("</script>"); return sb.ToString(); } 所以现在我可以这样做: JavaScriptVars["Name"] = "John"; //string JavaScriptVars["Age"] = 32; //int JavaScriptVars["Hobbies"] = new string[] { "Sewing","Hiking" }; //array 在我的最后一页中,我得到: <script> var Name='John',Age=32,Hobbies=["Sewing","Hiking"]; </script> 所以现在我有一种强大的方法可以将没有脚本块或标签的正确管理类型的值传递给页面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何使用EditorForModel()来装饰我的ASP.NE
- asp.net – “与底层事务管理器的通信失败”错误消息
- ASP.NET MVC 3:在发送HTTP标头后,服务器无法追加标头
- asp.net-mvc – 如何在我的视图中将HTML从MVC控制器返回到d
- ASP.Net Core on Linux (CentOS7) 共享第三方依赖库部署
- asp.net-mvc – 启用relaxedUrlToFileSystemMapping以允许以
- asp.net-mvc – MVC – 编辑对象列表
- ASP.Net应用程序是否有内存限制?
- asp.net-mvc – 从OWIN身份验证中间件中考虑控制器属性
- asp.net-core – project.json中两个依赖项部分之间有什么不
推荐文章
站长推荐
- ASP.NET Core:部署项目到Ubuntu Server
- ASP.Net中父/子UI设计的最佳实践?
- 我应该如何组织我的ASP.Net主题和常见的CSS文件
- asp.net – 在IIS7上为WordPress重写URL
- asp.net – 在SQL Server中只获取浮点数的小数部
- asp.net mvc partialview @ Ajax.ActionLink不起
- 将Instant Messaging集成到ASP.NET应用程序中
- ASP.NET AJAX Call Web Service , Return JSON F
- 再论验证码安全:请及时销毁你的验证码
- asp.net – 在IIS7中重启网站以“刷新”Castle W
热点阅读