当前位置:编程学习 > C#/ASP.NET >>

asp.net mvc 提交含有html标记的内容被阻拦。

已经设置了<pages validateRequest="false" />也不行

我用的是CuteEditor在线编辑器,用javascript获取客户端Id,然后又获取了它所填内容,然后用ajax把它插入到数据库,由于CuteEditor里面内容含有html标签,所以没有反应。请问大家如何解决啊??
除了设置<pages validateRequest="false" />和提交表单之外(这些不行)大家有什么方法吗?

最好给我提供另外一种从CuteEditor获取数据传到数据库的方法!

谢谢大家了,请帮忙啊,我想肯定有解决办法吧,要不人家用asp.net mvc做程序的怎样从在线编辑器里获取数据传到数据库啊! --------------------编程问答-------------------- http://topic.csdn.net/u/20090514/16/d4e8c5e7-1c0a-44f6-a95f-0cbf3ae4067b.html --------------------编程问答-------------------- 回复1楼: 他们那个不行,最终也没解决的办法 --------------------编程问答-------------------- mark.....
--------------------编程问答-------------------- 直接在你的Action上加个特性就可以了:  [ValidateInput(false)]   --------------------编程问答-------------------- 然后用ajax把它插入到数据库,由于CuteEditor里面内容含有html标签

---------------------

你在用 ajax 去post 数据时,对 编辑器中的数据进行 html编码。

自己写个方法,比如:


function HtmlEncode(str) 
        { 
              var  s   =   ""; 
              if   (str.length   ==   0)   return   " "; 
              for   (var i=0; i <str.length; i++) 
              { 
                    switch   (str.substr(i,1)) 
                    {
                        case "<": s += "<"; break;
                        case ">": s += ">"; break;
                        //case "&": s += "&"; break;
                        case " ": s += " "; break;
                        case "\'": s += "'"; break;
                        case "\"": s += """; break;
                        default: s += str.substr(i,1);break;
                    }
              } 
              return s; 
        } 


转化一下, 然后再 ajax页面 用 Server.HtmlDecode()去转化一下,然后插入数据库,或者取出数据的时候 Server.HtmlDecode()。

ok? --------------------编程问答-------------------- 楼主你是不是用from表单啊。。。NET本身有一个from表单,你再在内面放一个表单,是无效的,点了没效,不会提交。。。 --------------------编程问答-------------------- 很简单,在提交的action上面加上[ValidateInput(false)] 就行了,例如:
[ValidateInput(false)] 
public ActionResult Write()
{
return view();
} --------------------编程问答--------------------  提交含有html标记的内容会被阻拦,在action上加了[ValidateInput(false)] 也没用
要不HTMLENCODE下. --------------------编程问答-------------------- 前台内容可以编码之后再提交。
如果你一定要提交html标记,最重要的地方是在web.config中添加下面的配置:
<system.web>
    <httpRuntime requestValidationMode="2.0" />
</system.web> --------------------编程问答-------------------- 楼主如果用的是mvc2的话,可进行如下设置
在Web.config中的system.web节点添加如下内容

    <pages validateRequest="false">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
    <httpRuntime requestValidationMode="2.0"/>

action前添加  
      [ValidateInput(false)]
        public ActionResult MyAction()
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,