转自:http://blog.csdn.net/wlccomeon/article/details/17270427

一、前台调用后台

 
        前台调用后台的方法一共可分为两大类:使用Html控件和使用Asp控件。

1、Asp控件

      非常方便,方便到让你吃惊!比如前台放上一个LinkButton,直接双击就可以进入到后台,然后轻松编写自己需要的代码!
    例如在前台添加一个服务器控件Button

  1. <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
双击,进入后台,可添加自己的代码,这里举一个简单的:

  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. Response.Write("服务器控件!");
  4. }

2、html控件

        但是,Asp控件属于服务器控件,比较耗费资源,同时它的灵活性和兼容性相对于Html控件来说却又有所不及。所以,在所做的项目中大量的使用了Html控件,而html控件除了添加runat="server"的方法(见控件的显示隐藏方法:http://blog.csdn.net/wlccomeon/article/details/16995481)能够实现与后台的打交道的方式之外,还有两种间接的方法:使用Ajax和提交表单,这里就都需要用到JavaScript的相关知识了,下面一一举例:

①提交表单

首先在表单中添加一个html控件或者仅仅一个a标签:

  1. <form id="login">
  2. <a href="#" id="strLogin" name="strLogin" onclick="checkInfo()">登录</a>
  3. </form>
  4. 然后,添加Js函数来提交表单:
  5. //登陆,提交表单
  6. function Login() {
  7. var form = document.forms["login"];    //获取要提交的表单的id
  8. form.action = "default.aspx";                 //刷新的目标页面
  9. form.method = "post";                           //form.method的默认数据提交方法是get,适用于服务器控件
  10. form.submit();                                         //提交
  11. }
运行之后,点击“登陆”a标签,即可对default进行刷新,从而运行后台代码。需要注意的是,这种方法想要触发的后台代码必须写在Page_Load里。

②使用Ajax

首先添加一个a标签:

  1. <a href="#" onclick="loginQuit()">退出</a>

编写JS代码

  1. //退出登录
  2. function loginQuit() {
  3. $.ajax({
  4. type: "Post",
  5. url: "Exit.ashx",               //退出的一般处理程序
  6. onSubmit: function () {
  7. },
  8. //判断结果是否正确
  9. success: function (result) {
  10. if (result == "T") {
  11. //隐藏登陆后,显示登陆前
  12. document.getElementById("loginAfter").style.display = "none";//隐藏
  13. document.getElementById("loginBefore").style.display = "block";//显示
  14. ////清空用户输入记录
  15. document.getElementById("UserName").value = "";
  16. document.getElementById("txtCode").value = "";
  17. document.getElementById("Password").value = "";
  18. }
  19. else {
  20. alert('退出失败!')
  21. }
  22. }
  23. });
  24. }

新建一个一般处理程序Exit.ashx,添加代码:

  1. public void ProcessRequest(HttpContext context)
  2. {
  3. context.Session["UserName"]=null;
  4. context.Session["UserID"] = null;
  5. context.Response.ContentType = "text/plain";
  6. context.Response.Write("T");
  7. }

后台代码就可以根据Session是否存在来进行自己的相关操作了。

二、后台调用前台

后台调用前台的方法有则有很多,目前我用到的大致有两种:

1、使用Response.Write方法

      该方法只能调用js内部自带的函数:
  1. Response.Write("<script type='text/javascript'>alert('成功!');</script>");

如果在后台经常需要用到这个JS函数的话,可以抽象出为一个类(本例为 jumpFrame),在类中添加方法:

  1. public static void AlertBox(string errMsg)
  2. {
  3. StringBuilder sb = new StringBuilder();
  4. sb.Append("<script language=\"javascript\"> \n");
  5. sb.Append("alert(\"" + errMsg.Trim() + "\"); \n");
  6. //sb.Append("window.location='test.aspx';\n");
  7. sb.Append("</script>");
  8. System.Web.HttpContext.Current.Response.Write(sb.ToString());
  9. }

调用:

  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. jumpFrame.AlertBox("成功!");
  4. }

2、用ClientScript类动态添加脚本

这个方法可以使用JS自定义函数,用法如下:在想调用某个Javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。

  1. ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");

这些个方法从探索到实践到解决其中出现的各种问题到最后能够成功运用于所在的项目,费了很大很大的精力。在这次历练中对于没有接触到的知识能够简单的运用是一个非常好的学习过程,而对于已经看过相关的视频如新闻发布系统和北大青鸟课程则是一个很好的回顾的过程。学而不用,久而久之就会生疏甚至遗忘;而用中学则比单纯的看视频跟着敲代码掌握的更牢、体会的更深。最后,如果大家有更好的方法或者我在上面的运用有什么不妥的地方还请各位不吝指教!

Asp.Net 前后台交互小结的更多相关文章

  1. ASP.NET前后台交互之JSON数据

    最近由于项目需要做一个Ajax的搜集单表单的多重数据的需求,所以就采用了前端JQuery保存Object对象之后转换成JSON的数据源传递给后台处理的这样的形式,相信有不少人大多时候是接收后台给出的J ...

  2. asp.net 前后台交互

    转自:http://www.cnblogs.com/softpower/archive/2010/11/16/1878769.html 1.如何在JavaScript访问C#函数? 2.如何在Java ...

  3. Devexpress 使用经验 —— ASPxGridView前后台交互写法推荐

    这里的格式是仁者见仁智者见智,这篇随笔只是我在工作过程中总结出的阅读性高,对我来说效率较高的写法. ASPX: <dx:ASPxGridView ID="ASPxGridViewLin ...

  4. jquery ajax返回json数据进行前后台交互实例

    jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...

  5. JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统

    前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...

  6. ajax实现异步前后台交互,模拟百度搜索框智能提示

    1.什么是异步?在传统的网站项目中,填写一堆数据,最后点击提交,在点击提交的这一刻才实现数据提交,前后台交互.在你点击提交之前数据是没有提交到后台的.这样就会造成很大的不便.比如,我填了一大堆数据,结 ...

  7. 前后台交互经常使用的技术汇总(后台:Java技术,前台:Js或者Jquery)

    1:由于针对特定的前后台交互用到的知识总结,所以不大量贴代码,主要给出思路,方便自己以后脑补和技术总结,当然也希望可以帮助到别人. 后台Json和其他格式转化,之前总结过Json和对象,集合,字符串的 ...

  8. WebSocket前后台交互

    其实对于前后台交互有很多种方法(只列举我知道的,嘻嘻): 1:from 表单: 使用场景——小信息量提交给后台 2:ajax(跨域的话用jsonp): 可以进行多量的前后台信心传递: 但实时性不高,不 ...

  9. MySQL前后台交互登录系统设计

    1.首先我们做一个前台的注册页面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...

随机推荐

  1. HDU 4712 Hamming Distance(随机算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4712 题目大意:任意两个数按位异或后二进制中含1的个数被称为海明距离,给定n个数,求出任意其中两个最小 ...

  2. Maven多层嵌套

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  3. Java中printStackTrace()、toString()、getMessage()的区别

    一.三者之间的关系图: 二.演示 1.printStackTrace()演示: public class Test {     public int div(int a, int b)     {   ...

  4. APUE学习笔记-文件I/O

    这次回顾APUE中第三四章的内容,主要是文件I/O操作相关的接口函数.    UNIX系统的文件I/O是不带缓冲的I/O,不带缓冲是指每个read和write都调用系统内核的一个系统调用. 1.文件描 ...

  5. Google Map 自定义 infowindow

    最近做的东西用到了infowindow,不过google提供的样式太难看了,于是想改变一下样式.看了一下好像infowindow的样式不太好改. 查了半天资料,看到一个infobox,感觉真的挺好用. ...

  6. JDK重要包和Java学习方法论

    以下内容摘自:万能的林萧说:一篇文章教会你,如何做到简历中要求的“要有扎实的Java基础”    第一级别:精读源码 该级别包含的包如下: java.io java.lang java.util 第二 ...

  7. git push用法和常见问题分析

    在使用git 处理对android的修改的过程之中总结的.但不完善 Git push $ git push origin test:master         // 提交本地test分支作为远程的m ...

  8. JVM内存管理基本概念

    java中是否存在内存泄露? 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连:其次,这些对象是无用的,即程序以后不会 ...

  9. swift 语法 - 以及学习资料

    附上一些swift的一下学习资料: 1.Swift语法介绍官方英文版:The Swift Programming Language 2.Swift与Objective-C相互调用Using Swift ...

  10. Mac下获取AppStore安装包文件路径

    通过远在大洋彼岸的苹果服务器下载东西,确实有够慢啊!AppStore更甚:甚至都经常提示连不上服务器,而有些软件呢,还必须从AppStore下载安装,所以没办法,谁让上了苹果的贼船呢!公司的网速更是不 ...