在做asp.net的项目中,经常用的一个知识点就是如何在页面之间传值。总结一下,应用过的几个小例子。
一、前台脚本调用后台:
1、html里调用后台代码,调方法,返回值为string。
1. <!--前台脚本:--> 2. <%=GetUserName()%>
1. //后台代码 2. public string GetUserName() //注意该方法返回值不能为void,否则执行会报错 3. { 4. string userName=""; 5. //userName="a"; 6. return userName; 7. }
用途:
可以用来在后台拼html页面,返回到前台脚本中。
例子:
html代码:
1. <div style="margin-top:-130px; z-index:1000;position:relative; height:130px" id="headdiv" runat="server"> 2. <%=Getpicture()%> 3. <a class="center-block" style="text-decoration:none; color:#fff;"> 4. <h5>用户等级</h5> 5. </a> 6. </div>
后台代码:
1. public string Getpicture() 2. { 3. //1.获取用户的id 4. JCZB.YMGJ.Model.ymgj_user user = (JCZB.YMGJ.Model.ymgj_user)Session["User"]; 5. string uid = user.uid.ToString(); 6. //根据用户的id获取照片的路径 7. string heading = bll.GetHeadimgByUid(uid); 8. StringBuilder strDiv = new StringBuilder(); 9. if (heading == "") 10. { 11. //头像不存在 12. strDiv.Append("<img style=\"width:78px; height:78px;\" src=\"../../../Admin/Images/mine/login.png\" οnclick=\"javascript:window.location.href='Userinfo.aspx';\" />"); 13. } 14. else 15. { 16. //头像存在 17. strDiv.Append("<img style=\"width:78px; height:78px; border-radius:50%; overflow:hidden;\" src=\" "); 18. strDiv.Append(heading); 19. strDiv.Append(" \" οnclick=\"javascript:window.location.href='Userinfo.aspx';\" />"); 20. } 21. return strDiv.ToString(); 22. }
效果展示:
2、前台js中也可以用此种方式调用后台代码
1. Var name=<%=GetUserName()%> 2. var name=<%=Session["UserName"]%>
3、html里调用后台代码里的参数:
<%#Eval(UserName)%>
4、通过id给相应控件赋值:
<asp:Label ID="artist" runat="server"></asp:Label>
this.artist.Text = "艺术家:无" ;
二、后台调用前台(html、js)中的数据:
1、可以通过控件id获取控件的value值、text值等。
前台通过js进行了一些处理,得到了一些值,想传到后台,可以考虑这个方案:新建一个隐藏的input标签,把参数放到input标签的value值中,在后台通过input的id获取input的value值,进行操作。
三、特殊方式:
可以通过把值存入session、cookie、cache等中,直接调用。在项目中用session用的较多。
推荐几个总结传值的链接:
http://www.pc6.com/infoview/Article_43306.html
http://www.111cn.net/net/net/42641.htm
http://www.jb51.net/article/18665.htm
http://www.111cn.net/net/net/45589.htm