当前位置: 移动技术网 > IT编程>开发语言>.net > Asp.net MVC 3中Session与ViewBag传值到Js中

Asp.net MVC 3中Session与ViewBag传值到Js中

2018年12月10日  | 移动技术网IT编程  | 我要评论

硬币穿玻璃,电脑报pdf,常熟二院电梯门

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( +' '+ ' );

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

 


作者:petter liu

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网