webform怎样调用ashx的方法_webform.mdjf.ashx. - CSDN
精华内容
参与话题
  • 我们想法是以不同的服务器端方式输出,然后在页面使用jQuery的ajax实现调用服务器端几个解决方案: 使用一般的webform,在页面用jQuery ajax调用,再从取得的html数据中取得内的内容,写入DOM优点:不用改变现有的...

    老师研究探讨了下asp.net里,除官方庞大asp.net ajax之外的ajax解决方案。我们想法是以不同的服务器端方式输出,然后在页面使用jQuery的ajax实现调用服务器端几个解决方案:

    • 使用一般的webform,在页面用jQuery ajax调用,再从取得的html数据中取得<body>内的内容,写入DOM
      • 优点:不用改变现有的asp.net开发模式,可以使用现成的页面;ajax取得的内容是html文本,直接写入DOM即可
      • 缺点:内容浪费,<body>之外的内容都不是必要的,而且如果使用了MasterPage那就。。。
    • 使用一般的webform,但是用Response.Write()控制输出html,在页面用jQuery ajax调用,将获取的内容写入DOM
      • 优点:内容干净,不浪费;ajax取得的内容是html文本,可以直接写入DOM
      • 缺点:需要在服务器端以字符串形式构造html文本,编程不方便,不容易调试和维护
    • 使用一般的webform,用Response.Write()控制输出json数据,在页面用jQuery ajax调用,将json数据在客户端加工成html后写入DOM
      • 优点:仅仅交换json数据,极干净,符合高效的web设计理念
      • 缺点:需要在客户端加工json数据,并且对DOM造成入侵
    • 使用asmx,封装成web service,用jQuery ajax调用asmx的内容,将json或者xml数据在客户端加工成html后写入DOM
      • 优点:仅仅交换json或/xml数据,非常干净;web service易于跨平台
      • 缺点:需要在客户端加工json数据,并且对DOM造成入侵
    • 使用自定义控件ascx,然后使用专门的webform页面做wrapper(包装)在页面用jQuery ajax调用wrapper webform,将html数据写入DOM
      • 优点:webform仅仅用作wrapper,根据不同的请求参数可以在wrapper中动态使用自定义控件;自定义控件输出的是html文本,可以直接写入DOM;编程方便,有VS2008代码感知支持,易于调试和维护
      • 缺点:跟传统的webform编程理念不一样,弱化了webform的作用

    以上就是讨论的几种可行的方案——不管是asp.net webform方式还是asp.net MVC方式,都是可行的。

    昨天晚上又发现一种方案:使用ashx+jQuery .ashx是一个专门的用于处理HttpHandler的文件类型,用来处理自定义Http请求,可以在web.config定义运行时针对ashx的Http请求处理方式。

     = = = = 

    这样我们就可以用SimpleHandlerFactory来处理ashx的http请求了。在ashx的类中实现IRequiresSessionState接口,using下System.Web.SessionState就可以使用Session了,很方便

     ..;     
      checkCookie  IHttpHandler ,IRequiresSessionState
    
      ...  
    

    实例:使用ashx+jQuery实现Email存在的验证

    .ashx文件

    @ WebHandler Language  
     
     ;
     .;
     
     
      CheckUser  IHttpHandler 
     
          ProcessRequest HttpContext context 
            context..  ;
            context..UserRule..context.;
        
     
          IsReusable 
            get 
                 ;
            
        
    

    html:

          >
           >

    js:

    function check_email 
        var email = $.;
        $.,
         Email: email ,
        functiondata 
            window.data;
        ;
    

    simple的,显然效率会比较高。不过simple的就只能够做点simple的事情。如果要输出html,还是不太方便。如果要输出html的话,我还是比较倾向于用ascx处理内容,webform做包装所以ashx+jQuery应该算是是一个asp.net里轻量级的解决方案

    展开全文
  • 做MVC有些日子了,突然在工作中需要使用到asp.net web2.0 的webform,感觉一下子又回到了过去,但是却发现自己在前台JQuery中怎么调用后台cs代码都忘记了。找了些相关的资料,逐个测试使用了下,效果不错。贴出来...

          做MVC有些日子了,突然在工作中需要使用到asp.net web2.0 的webform,感觉一下子又回到了过去,但是却发现自己在前台JQuery中怎么调用后台cs代码都忘记了。找了些相关的资料,逐个测试使用了下,效果不错。贴出来大家需要的是参考下。

    1.在前台html控件调用c#后台变量。
    在后台的类代码里定义一个字符串。如
    public partial class Index : System.Web.UI.Page
    {
        public string msg = "";
    }
    然后可以写方法改变此字符串的值。
    前台调用也很简单:
    <input id="Text1" type="text" value="<%=msg%>"/>
    2.在前台html调用c#后台方法
    后台有一个方法:
    public string test()
    {
        return "message";
    }
    前台代码:
    <input id="Text2" type="text" value="<%=test()%>"/>
    3.在前台js里调用c#后台变量
    后台代码:
    public partial class Index : System.Web.UI.Page
    {
        public string msg = "";
    }
    前台代码:
       <script>alert("<%=msg%>");</script>
    4.在前台js里调用c#后台变量
    后台有一个方法:
    public string test()
    {
        return "message";
    }
    前台代码:
    <script>alert("<%=test() %>");</script>
    5,前台js里调用后台带参数的方法
    public string test(string a)
    {
        return a+",我是参数传进来的";
    }
    <script>alert("<%=test("021") %>");</script>
    6,前台js里调用后台带参数的方法
     //商品信息
    function getProInfo(t) {
        var result = "";
        result = MallPowerSite.order.ChangeOrderEdit.GetProductInfo(t).value;//后台的方法,注意这里不用双引号
         return result;
    }
    

    值得注意的是,要在js中调用C#的变量和函数返回的结果,js代码必须写在页面的<script>...</script>中,而不能写在独立的*.js文件中,这样会js会将*.js的C#代码作为字符串处理,而不是变量或者方法。

    展开全文
  • 不是说MVC不好,而是WebForm并没有那么不堪,和Mvc同样优秀。对说WebForm缺点多的,表示不服,求指教,虽然本人有些见解可能比较浅薄。 看过很多文章和书籍,都会拿MVC模式和WebForm模式来对比。 人们说MVC的优点...

    不是说MVC不好,而是WebForm并没有那么不堪,和Mvc同样优秀。对说WebForm缺点多的,表示不服,求指教,虽然本人有些见解可能比较浅薄。

    看过很多文章和书籍,都会拿MVC模式和WebForm模式来对比。

    人们说MVC的优点大概有:关注点分离,M,V,C关系既紧密又疏远,解耦,易于维护,易于单元测试。

    那WebForm哪里不好呢?

    我觉得各类书籍和文章所说的WebForm的缺点在于ViewState,耦合严重,难以维护针对的都是aspx和其控件。

    但是目前的WebForm开发并非这种方式啊,ashx+html+ajax+各种前端框架,类库。

    就拿ashx+html来说,耦合了吗?并且我认为解耦和代码的清晰整洁度更好,

    我可以每一个业务都用独立的ashx来写,html只需要使用ashx的返回数据,在ashx管理方面,我也可以用多个文件夹更清晰的管理,

    每个ashx中处理一个业务不清晰吗?在页面变动的时候,逻辑代码需要改动吗?不易于维护吗?

    在需求变更的时候,新功能加ashx处理新业务,修改功能,页面的修改html,逻辑的修改ashx的逻辑返回所需数据。

    WebForm不是同样优秀吗?不易于分工吗?不存在ViewState吧?页面和逻辑没有严重耦合吧?

    WebForm配合着合适问题的架构不一样优秀吗?

    或许我真的没有领会mvc的优点,但是据我所见的优点,WebForm同样可以做到,我也非常困惑,不过MVC的某些方便之处,确实不错。

     

    展开全文
  • ashx一般处理程序

    万次阅读 2015-05-28 11:23:25
    .NET里面webform的后缀是aspx ...然后今天拿到一个客户端代码,调用服务端,服务端后缀是ashx瞬间傻蛋了,.NET我不知道的组件真多。 四个疑问: 1、什么时候用 2、优缺点 3、简单实现机制 4、简单DEMO

    .NET里面webform的后缀是aspx

    WCF和WebService的后缀是asmx

    然后今天拿到一个客户端代码,调用服务端,服务端后缀是ashx瞬间傻蛋了,.NET我不知道的组件真多。


    四个疑问:

    1、什么时候用

    2、优缺点

    3、简单实现机制

    4、简单DEMO


    1、什么时候用

        虽然通过标准的方式可以创建处理程序,但是实现的步骤比较复杂,为了方便网站开发中对处理程序的应用,从Asp.net 2.0开始,asp.net提供了称为一般处理程序的处理程序,允许我们使用比较简单的方式定义扩展名为ashx的专用处理程序。

        对于asp.net网站来说,网站最觉的处理结果就是HTML网页,生成网页的工作通常使用扩展名为aspx的Web窗体来完成。对于处理结果不是HTML的请求,都可以通过一般处理程序完成。例如生成RSS Feed、XML、图片等。
        一般处理程序是asp.net网站中最为简单、高效的处理程序,在处理返回类型不是HTML的请求中有着重要的作用。

        不知道我的理解正不正确,那感觉asmx适合作为C/S的服务器端来使用。


    2、优缺点

         通常是实现IHttpHandler接口,因为不必继承自Page类,所以没有那么多事件需要处理,不必消耗太多资源,所以性能方面要比aspx高


    3、简单实现机制

    .ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。

    .ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。


    4、简单DEMO

    在VS2013下,右键项目-->添加-->一般处理程序,就添加成功了,不知道是不是我添加过,所以在右键里面有。

    另一种添加方式是右键项目-->添加-->新建项,然后如下图所示。

    但我诧异的发现两种添加方式添加出来的文件图标不一样。

    第一种方式添加图标和最下方的WebService相同,而第二种添加方式只添加了一个类。

    先不管第二种,第一种生成的代码有两个文件

    Handler1.ashx

    <%@ WebHandler Language="C#" CodeBehind="Handler1.ashx.cs" Class="WebApplication1.Handler1" %>
    

    Handler1.ashx.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace WebApplication1
    {
        /// <summary>
        /// Handler1 的摘要说明
        /// </summary>
        public class Handler1 : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write("Hello World");
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }

    接下来就是怎么访问这个文件,我直接点F5运行项目,然后在浏览器地址栏加上路径,我整个路径是这样的http://localhost:6988/Handler1.ashx

    然后成功看到浏览器上一个光秃秃的Hello World



    
    
    展开全文
  • 原文来自:http://wiki.belltoy.net/allentranks/ashx_jquery_a_lightly_ajax_solution_of_asp.net--------------------------------------------------------------------------------跟shotdog老师研究探讨了下asp...
  • 前言:有了Ashx,为什么还要有Aspx?代码为什么要后置?&lt;%%&gt;又是什么意思,下面的这篇博客会带你揭开这些问题的答案。 (一)既然有了Ashx,为什么还要有Aspx 如果每次输出网页都 一般处理程序(ashx) ...
  • 1,Ajax是什么Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,你可以创建接近本地桌面应用的,直接...
  • AjaxPro Ajax.Net

    千次阅读 2008-07-25 10:27:00
    1,Ajax是什么Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,你可以创建接近本地桌面应用的,直接...
  • 均为本人在实验中的扩展1、 Ajax.net 做为Ajax技术在dotNet 框架下的实现,作者Michael Schwarz采取了一种封装效果相当棒的技术:将客户端处理XML、事件调用方式都封装在2个Javascript文件中(AjaxPro.
  • html+ashx 表单提交

    千次阅读 2014-03-22 00:44:44
    ashx+html提交
  • asp.net WebForm项目Ajax示例讲解

    千次阅读 2014-01-16 16:16:36
    asp.net WebForm项目Ajax示例讲解    对于asp.net WebForm项目,进行Ajax操作大概有三种方式:web服务(.asmx文件) , 一般处理程序(.ashx)和 一些Ajax控件。  对于.net提供的ajax控件,暂且不说,只说另外两...
  • 我们1)以不同的服务器端方式输出,然后在页面使用 jQuery 的 ajax 实现来调用服务器端。这样,就有了几个不同于官方庞大 asp.net ajax 之外的 ajax 解决方案: 使用一般的 webform,在页面用 jQuery ajax 调用,再从...
  • 我们想法是以不同的服务器端方式输出,然后在页面使用jQuery的ajax实现调用服务器端几个解决方案: 1、使用一般的webform,在页面用jQuery ajax调用,再从取得的html数据中取得内的内容,写入DOM 优点:...
  • 使用ashx的时候 我们还有手动的创建一个html的模板文件 然后在ashx中读取模板文件 最后再替换 先去掉运行的效率不说 错误的几率是非常大的 还有一个最重要的就是 读取和替换的时候 都要用到的IO操作 IO操作是...
  • 利用ajaxpro.dll进行Ajax的开发

    千次阅读 2006-09-25 15:29:00
    均为本人在实验中的扩展1、Ajax.net 做为Ajax技术在dotNet 框架下的实现,作者Michael Schwarz采取了一种封装效果相当棒的技术:将客户端处理XML、事件调用方式都封装在2个Javascript文件中(AjaxPro.protot
  • ashx+jQuery,一个轻量级的asp.net ajax解决方案 收藏 跟shotdog老师研究探讨了下asp.net里,除官方庞大asp.net ajax之外的ajax解决方案。我们想法是以不同的服务器端方式输出,然后在页面使用jQuery的ajax实现调用...
1 2 3 4 5 ... 20
收藏数 1,459
精华内容 583
关键字:

webform怎样调用ashx的方法