zoukankan      html  css  js  c++  java
  • 分析:Handler的奇怪现象,<%@加不上

    在做项目时,使用Handler时,文件头部无法书写<%@ WebHandler Language="C#" class="Handler" %>, <%@下面总是有红色错误提示,怎么解决?

    解决方案:

    1、  新建网站(注意是网站,不是项目)

    2、 选择添加新项一般处理程序(Handler)页面,如Handler.ashx

    3、在原项目中添加现有项,选择刚刚建好的那个页面Handler.ashx到你的项目里即可。

    可是为什么会有这么坑爹的问题存在呢?

    事实一:

    仔细观察你会发现,在项目里的Handler.ashx与普通的aspx类似,具有Handler.ashx.cs页面,并且默认Handler.ashx就是Handler.ashx.cs,认为它是后台页面,<%@ WebHandler Language="C#" class="Handler" %>肯定不允许添加。

    事实二:

    而网站中只有Handler.ashx,VS认为这是前台页面,所以存在<%@ WebHandler Language="C#" class="Handler" %>是合情合理的。

    事实三:

    虽然不相同,那采取上面的方法已经解决。

    原因可以从vs2010的几个规则说起:

    规则一:vs2010认为项目页面都有前台页和后台页,执行严格的code behind模式。

    规则二:vs2010认为部分项目页面不需要前台页面。

    如:一般处理程序页面(Handler.ashx)、web服务页面(Webservice.asmx),他们在vs里显示有,但是你一打开就成了Handler.ashx.cs和Webservice.asmx.cs

    规则三:vs2010认为网站不需要执行严格的code behind模式。

    规则四:vs2010认为项目和网站子文件兼容。

    总的来说,这应该是个BUG,是微软的规则冲突而引起的奇怪现象。

     

    欢迎来喷!

  • 版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
  • 捐款支持:
查看全文
  • 相关阅读:
    《构建之法(第三版)》第三章
    《深入理解计算机系统(第三版)》第三章
    《文献管理与信息分析》第二章
    Mendeley文献管理软件使用介绍
    《构建之法(第三版)》第二章
    2017-2018-1 20179202《Linux内核原理与分析》第十二周作业
    《深入理解计算机系统(第三版)》第二章
    2017-2018-1 20179202《Linux内核原理与分析》第十一周作业
    《文献管理与信息分析》第一章
    《构建之法(第三版)》第一章
  • 原文地址:https://www.cnblogs.com/liuguozhu2015/p/Handler.html
  • Copyright © 2011-2022 走看看