惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
月光博客
月光博客
AI
AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CXSECURITY Database RSS Feed - CXSecurity.com
WordPress大学
WordPress大学
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
O
OpenAI News
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
S
Security Affairs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Scott Helme
Scott Helme
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Vercel News
Vercel News
The Hacker News
The Hacker News
Y
Y Combinator Blog
Latest news
Latest news
SecWiki News
SecWiki News
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
Cisco Blogs
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题

博客园 - Kiven

50个常用SQL语句 [摘]在ASP.NET MVC中使用DropDownList SQL Server里面可能经常会用到的日期格式转换方法 « 给初学C++者的50条忠告 C++/CLI学习入门数组 asp.net页面刷新后样式就发生了改变 System::String^ / std::string / char * 间的转换(部分) [摘]C/C++实现js的split函数功能 char*与System::String^的相互转换 Windows Phone 7 常用控件之Map Windows Phone 7 常用绘图控件 [网摘]深入浅出解读微软云计算:让云触手可及 【网摘日记】云计算五层架构 [MVP在线交流]微软原型设计工具SketchFlow企业级应用(二) Web项目VS2005转VS2008平台注意事宜。 [俱乐部在线交流]微软原型设计工具SketchFlow企业级应用(一) [武汉站]Windows 7社区发布活动圆满成功! [武汉站]Windows 7 社区发布活动 宏博软件“移动公教站”之“微软新技术预览”系列资料
[摘]Asp.net MVC 3中Session与ViewBag传值到Js中
Kiven · 2013-03-31 · via 博客园 - Kiven

Asp.net MVC 3 中Session与ViewBag传值到Javascript中, 主要方法有:
1. 使用Javascript Variable  
假设有say _layout.cshtml
<head>
    ...
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    @RenderSection("my_script_variables", false)
    <script src="@Url.Content("~/Scripts/external.js")" type="text/javascript"></script>
    ...
</head>


增加到你的View:

@Section my_script_variables {
<script type="text/javascript"> 
  var variable1 = '@myVar1', variable2 = '@Session["myVar2"]', variable3 = '@ViewBag.myVar3';  
 </script>
}
 
假设你有这样的Value:
@{    String myVar1 = "First";    Session["myVar2"] = "Second";    ViewBag.myVar3 = "Third"; }
 
在外部的Js文件中,你到得来First Second Third的alert消息。
alert(variable1 + ' ' +variable2 +' '+ variable3);
 
2.使用Controller的特性
可以放一个参数到你的控件
<input type="hidden" value="@Session["myVar2"]" id="myHiddenVar" />

然后
alert($('#myHiddenVar').val());
也可以使用Data特性:
<a id="myLink" data-variable1="@myVar1" data-variable2="@Session["myVar2"]" data-variable3="@ViewBag.myVar3">
    Test</a>
 
然后在外面引用的JS中:
$('#myLink').click(function () {
 alert($(this).data('variable1')+' ' +$(this).data('variable2')+'
'+$(this).data('variable3')); }
);
我们得到同样的结果
 
3.RazorJS
 
  你可以从NuGet安装它.  它允许你写Razor风格的C#代码在Js文件中。
View:
@{    
    String var1 = "First"; Session["var2"] = "Second";
       ViewBag.var3 = "Third";
       Dictionary<string, string> test1 = new Dictionary<string, string>();
       test1.Add("var1", var1);
       test1.Add("var2", Session["var2"].ToString());
       test1.Add("var3", ViewBag.var3);   
  }
@Html.RazorJSInline("~/Scripts/external.js", test1);
 
然后在外部的external.Js中:
@{
    var myobj = (Dictionary<string, string>)Model;
 }
alert('@myobj["var1"]' +' '+ '@myobj["var2"]'+' ' +'@myobj["var3"]');

 
最后还是同样的结果。
希望对你Web开发有帮助。


作者:Petter Liu

posted @ 2013-03-31 13:12  Kiven  阅读(2236)  评论()    收藏  举报