我得到这个错误,当我从 TinyMCE的在ASP.NET MVC图。<张贴/ p>

错误:

  

请求验证已经检测到潜在危险的客户端输入值,并且该请求的处理已被中止

从谷歌上搜索,它说,只是在Page指令,在我做的顶部添加validateRequest,但我仍然得到这个错误。正如可以看到,下面是我的代码在视图中:

<%@ Page validateRequest="false" Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
有帮助吗?

解决方案

使用装饰[ValidateInput(false)]

您会再想要写一个的HTMLEncode方法使之安全。

让如果你要我发表一个我用我知道了。

加予使用编码

    public static class StringHelpers
{
    public static string HtmlEncode(this string value)
    {
        if (!string.IsNullOrEmpty(value))
        {
            value = value.Replace("<", "&lt;");
            value = value.Replace(">", "&gt;");
            value = value.Replace("'", "&apos;");
            value = value.Replace(@"""", "&quot;");
        }
        return value;
    }

    public static string HtmlDecode(this string value)
    {
        if (!string.IsNullOrEmpty(value))
        {
            value = value.Replace("&lt;", "<");
            value = value.Replace("&gt;", ">");
            value = value.Replace("&apos;", "'");
            value = value.Replace("&quot;", @"""");
        }

        return value;
    }
}

其他提示

尝试这种解决方案。简单地添加到TinyMCE的控制

tinyMCE.init({
...
encoding : "xml"
});

http://wiki.moxiecode.com/index.php/TinyMCE :配置/编码

http://blog.tentaclesoftware.com/archive/2010 /07/22/96.aspx

尝试在模型中使用[AllowHtml]属性。

class MyModel{
 [AllowHtml]
 public string Content{get;set;}
}

烦人在TinyMCE的第4版,他们似乎已删除了编码:XML选项

我最终使用一个JavaScript HTML编码函数从此答案和上我的提交按钮我编码textarea的内容表单提交之前,通过使用TinyMCE的的getContent和setContent方法

我有同样的问题。我不想禁用ASP.NET MVC验证功能,所以我一直在寻找,直到我达到了这个解决方案:

目前TinyMCE的插件代码对内容进行编码(我使用的是旧版本)

tinyMCE.init({
   ...
   encoding: "xml"
});

在这之后,我没有得到任何更多的应用验证错误。然后,我想到了另一个问题,当我编辑我的表单代码将拿出html标签

<strong>My input value</strong>

,而不是这

我输入值

所以,我不得不在控制器让我的价值观时,这样对HTML的那场解码:

...    
entity.field = HttpUtility.HtmlDecode(entity.field);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top