11

我在我的 MVC.NET 站点上使用 CKEditor/CKFinder 作为所见即所得的编辑器。

我已经设置[ValidateInput(false)]并且在本地调试时它可以工作,但是当我发布站点时收到以下错误:

A potentially dangerous Request.Form value was detected from the client (message="<p>
<em>Testing</e...").

谁能解释为什么发布的站点与本地站点不同,尤其是当我设置时[ValidateInput(false)]

*更新: *我使用的是 .Net 3.5,所以不应该 [ValidateInput(false)]开箱即用吗?

4

6 回答 6

26

Have you tried setting the htmlEncodeOutput property?

CKEDITOR.replace('editor1', {
    htmlEncodeOutput: true });

This should encode the output and you should be able to avoid setting the requestValidationMode.

Documentation for it is here: ckEditor documentation

于 2011-01-18T15:24:05.040 回答
7

将此添加到您的 web.config:

<httpRuntime requestValidationMode="2.0" />
于 2011-01-07T22:51:53.503 回答
0

只需将注释添加到 Post 方法 Action 为 [ValidateInput(false)]

[HttpPost]
    [ValidateAntiForgeryToken]
    [ValidateInput(false)]
    public ActionResult Detail(ModelClass m)
    { return View(); }
于 2017-09-06T13:18:30.713 回答
0

添加ValidateRequest="false"到您的页面:

<%@ Page Language="C#" AutoEventWireup="false" Codebehind="MyForm.aspx.cs" Inherits="Proj.MyForm" ValidateRequest="false"%>

如果使用 .NET Framework 4.0 (Visual Studio 2010),则添加到 web.config

<httpRuntime requestValidationMode="2.0" />
于 2018-10-26T07:40:50.047 回答
0

利用Request.Unvalidated["myTextBox"]

例如,

var text = Request.Unvalidated["myTextBox"];

其中“myTextBox”是您希望允许从中发布 HTML 的表单字段。

于 2019-09-02T10:53:02.407 回答
0

ValidateRequest="false" 在特定页面中添加此项。

例子:

于 2018-07-25T06:05:50.900 回答