zoukankan      html  css  js  c++  java
  • ASP.NET 程序提交表单数据中带有html标签不能提交或者提交报错问题

         今天在公司做另外的一个项目,又奇葩的遇到一个问题。

         在本地自己电脑上怎么测试都是正常的。但是先上服务器就出问题:

         用富文本编辑器上传一篇文章,始终报错,又没提示具体什么错误,也没说代码错误,点击提交按钮后始终不会请求相应的后台事件方法。

         首先根据自己的经验,想到是不是和之前遇到过的提交数据中含有html标签而造成不能提交表单问题。

         然后直接在页面加上:ValidateRequest="false"

         关键是加上后还是一样的错误,这个我就有点不知所措了,只显示个页面出错,写了日志,查看日志,还是不能请求我的后台代码。

         然后我把提交的数据全部写死,传入一个固定的值试一试(不带有html的),注意假设页面有富文本编辑器,富文本编辑器中最好不要填写值。此时可以提交表单了。

         基本问题已经找到了,说明问题还是表单数据中含有html标签,然后百度了一些,基本说的都是页面加一个:ValidateRequest="false",这样还是不能解决问题。

         后来终于解决问题,结果居然这么简单,解决方法如下:

         在webconfig中进行修改:

                                      在节点httpRuntime内加入:requestValidationMode="2.0"

                                      在节点compilation内加入:targetFramework="4.0"

         即变成:           

                  <httpRuntime requestValidationMode="2.0"/>
                  <compilation debug="true" targetFramework="4.0"/>

         特别说明,网上好多说的都是加入requestValidationMode="2.0"即可,这个我试了是不行。原因是因为我的网站的.NET FrameWork版本是4.0的,所以这个根据自己网站的.NET FrameWork版本来修改。如果版本是4.0及其以上的必须两个加入。

          总结,对于网站提交表单数据中含有html标签不能提交的,如果网站.NET FrameWork版本是4.0及其以上的,需要在webconfig中加入:

                   <httpRuntime requestValidationMode="2.0"/>
                  <compilation debug="true" targetFramework="4.0"/>

          如果.NET FrameWork版本是4.0以下的,添加<httpRuntime requestValidationMode="2.0"/>即可。

          在此,也谢谢博客园里的各位朋友的评论,从你们的评论互动其实我也能学到许多东西,谢谢。

  • 相关阅读:
    hdu 1142 用优先队列实现Dijkstra
    POJ 2063 Investment 完全背包
    POJ 3260 多重背包+完全背包
    bignum 大数模板
    POJ 3468(树状数组的威力)
    POJ 3468 线段树裸题
    hdu 1058 Humble Numbers
    CodeForces 185A 快速幂
    POJ 1990 MooFest 树状数组
    设计模式(20)策略模式
  • 原文地址:https://www.cnblogs.com/sharing1986687846/p/6229499.html
Copyright © 2011-2022 走看看