Asp.Net 前后台交互小结
转自:http://blog.csdn.net/wlccomeon/article/details/17270427
一、前台调用后台
1、Asp控件
例如在前台添加一个服务器控件Button
- <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
双击,进入后台,可添加自己的代码,这里举一个简单的:
- protected void Button1_Click(object sender, EventArgs e)
- {
- Response.Write("服务器控件!");
- }
2、html控件
①提交表单
首先在表单中添加一个html控件或者仅仅一个a标签:
- <form id="login">
- <a href="#" id="strLogin" name="strLogin" onclick="checkInfo()">登录</a>
- </form>
- 然后,添加Js函数来提交表单:
- //登陆,提交表单
- function Login() {
- var form = document.forms["login"]; //获取要提交的表单的id
- form.action = "default.aspx"; //刷新的目标页面
- form.method = "post"; //form.method的默认数据提交方法是get,适用于服务器控件
- form.submit(); //提交
- }
运行之后,点击“登陆”a标签,即可对default进行刷新,从而运行后台代码。需要注意的是,这种方法想要触发的后台代码必须写在Page_Load里。
②使用Ajax
首先添加一个a标签:
- <a href="#" onclick="loginQuit()">退出</a>
编写JS代码
- //退出登录
- function loginQuit() {
- $.ajax({
- type: "Post",
- url: "Exit.ashx", //退出的一般处理程序
- onSubmit: function () {
- },
- //判断结果是否正确
- success: function (result) {
- if (result == "T") {
- //隐藏登陆后,显示登陆前
- document.getElementById("loginAfter").style.display = "none";//隐藏
- document.getElementById("loginBefore").style.display = "block";//显示
- ////清空用户输入记录
- document.getElementById("UserName").value = "";
- document.getElementById("txtCode").value = "";
- document.getElementById("Password").value = "";
- }
- else {
- alert('退出失败!')
- }
- }
- });
- }
新建一个一般处理程序Exit.ashx,添加代码:
- public void ProcessRequest(HttpContext context)
- {
- context.Session["UserName"]=null;
- context.Session["UserID"] = null;
- context.Response.ContentType = "text/plain";
- context.Response.Write("T");
- }
后台代码就可以根据Session是否存在来进行自己的相关操作了。
二、后台调用前台
后台调用前台的方法有则有很多,目前我用到的大致有两种:1、使用Response.Write方法
该方法只能调用js内部自带的函数:
- Response.Write("<script type='text/javascript'>alert('成功!');</script>");
如果在后台经常需要用到这个JS函数的话,可以抽象出为一个类(本例为 jumpFrame),在类中添加方法:
- public static void AlertBox(string errMsg)
- {
- StringBuilder sb = new StringBuilder();
- sb.Append("<script language=\"javascript\"> \n");
- sb.Append("alert(\"" + errMsg.Trim() + "\"); \n");
- //sb.Append("window.location='test.aspx';\n");
- sb.Append("</script>");
- System.Web.HttpContext.Current.Response.Write(sb.ToString());
- }
调用:
- protected void Button1_Click(object sender, EventArgs e)
- {
- jumpFrame.AlertBox("成功!");
- }
2、用ClientScript类动态添加脚本
这个方法可以使用JS自定义函数,用法如下:在想调用某个Javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。
- ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
这些个方法从探索到实践到解决其中出现的各种问题到最后能够成功运用于所在的项目,费了很大很大的精力。在这次历练中对于没有接触到的知识能够简单的运用是一个非常好的学习过程,而对于已经看过相关的视频如新闻发布系统和北大青鸟课程则是一个很好的回顾的过程。学而不用,久而久之就会生疏甚至遗忘;而用中学则比单纯的看视频跟着敲代码掌握的更牢、体会的更深。最后,如果大家有更好的方法或者我在上面的运用有什么不妥的地方还请各位不吝指教!
Asp.Net 前后台交互小结的更多相关文章
- ASP.NET前后台交互之JSON数据
最近由于项目需要做一个Ajax的搜集单表单的多重数据的需求,所以就采用了前端JQuery保存Object对象之后转换成JSON的数据源传递给后台处理的这样的形式,相信有不少人大多时候是接收后台给出的J ...
- asp.net 前后台交互
转自:http://www.cnblogs.com/softpower/archive/2010/11/16/1878769.html 1.如何在JavaScript访问C#函数? 2.如何在Java ...
- Devexpress 使用经验 —— ASPxGridView前后台交互写法推荐
这里的格式是仁者见仁智者见智,这篇随笔只是我在工作过程中总结出的阅读性高,对我来说效率较高的写法. ASPX: <dx:ASPxGridView ID="ASPxGridViewLin ...
- jquery ajax返回json数据进行前后台交互实例
jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...
- JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统
前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...
- ajax实现异步前后台交互,模拟百度搜索框智能提示
1.什么是异步?在传统的网站项目中,填写一堆数据,最后点击提交,在点击提交的这一刻才实现数据提交,前后台交互.在你点击提交之前数据是没有提交到后台的.这样就会造成很大的不便.比如,我填了一大堆数据,结 ...
- 前后台交互经常使用的技术汇总(后台:Java技术,前台:Js或者Jquery)
1:由于针对特定的前后台交互用到的知识总结,所以不大量贴代码,主要给出思路,方便自己以后脑补和技术总结,当然也希望可以帮助到别人. 后台Json和其他格式转化,之前总结过Json和对象,集合,字符串的 ...
- WebSocket前后台交互
其实对于前后台交互有很多种方法(只列举我知道的,嘻嘻): 1:from 表单: 使用场景——小信息量提交给后台 2:ajax(跨域的话用jsonp): 可以进行多量的前后台信心传递: 但实时性不高,不 ...
- MySQL前后台交互登录系统设计
1.首先我们做一个前台的注册页面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
随机推荐
- 节点的创建--对比jQuery与JavaScript 方法
一. 创建节点: 节点是DOM结构的基础,根据DOM规范,节点是一个很宽泛的概念,包含元素.属性.文本.文档和注释.但在实际开发中,要动态创建内容,主要操作的节点包括元素.属性和文本. 1.需求:创 ...
- spring Aop 注解
个人理解: spring Aop 是什么:面向切面编程,类似于自定义拦截操作,支持拦截之前操作@Before,拦截之后操作@After,拦截环绕操作@Around. 什么情况下使用spring Aop ...
- Sublime Text3 个人使用心得
sublime与webstorm的比较: webstorm真心很强大,强大到能够几乎满足所有前端开发者编程的需求,方便的快捷键操作.代码提示.浏览器查看.工程管理.历史记录(可以找到之前编辑的内容,即 ...
- Config IIS server6.0-- HTTP 错误 500.21 - Internal Server Error 解决方案
HTTP 错误 500.21 - Internal Server Error 解决方案 不久前重新安装了Windows7,在安装了VS2010 开发平台之后,将网站发布到IIS,访问发 ...
- 【C语言】中的布尔类型
C语言中的布尔类型 一.相关基础知识 首先bool true false为C++中的关键字,C语言中默认不支持这几个字符! 二.具体内容 在C89 (ANSI C)标准中没有定义与布尔类型相关的内 ...
- 【python之路6】pycharm的使用
1.pycharm简介 PyCharm 是我众多python编辑器中比较好的一个.而且可以跨平台,在macos和windows下面都可以用,这点比较好. PyCharm是一种Python IDE,带有 ...
- githubRepository -- 使用
1. 注册github账号; 2. 配置SSH keys; 点击setting, 配置 SSH keys Generating SSH keys 检查本地的 SSH keys: a> 在用户目录 ...
- android SurfaceView绘制 重新学习--控制动画移动
直接上demo,图是自己切的,将就用吧.点击左右两边分别向左右移动. public class MySurfaceView extends SurfaceView implements Callbac ...
- c/c++动态分配内存和malloc的使用
c/c++动态分配内存 为什么需要动态分配内存 ---很好的解决的了传统数组的4个缺陷 动态内存分配举例 ---动态数组的构造 使用动态数组的优点: 1. 动态数组长度不需要事先给定: 2. ...
- uva 1453 - Squares
旋转卡壳算法: 直接在这个上面粘的模板 主要用途:用于求凸包的直径.宽度,两个不相交凸包间的最大距离和最小距离··· 这题就是求凸包的直径 #include <cstdio> #inclu ...