6

このエラーは、TinyMCEからASP.NETMVCビューで投稿すると発生します。

エラー:

リクエストの検証で潜在的に危険なクライアント入力値が検出され、リクエストの処理が中止されました

グーグルから、それは私がした上部のPageディレクティブにvalidateRequestを追加するだけだと言っていますが、それでもこのエラーが発生します。ご覧のとおり、以下はビュー内の私のコードです。

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

5 に答える 5

9

このソリューションを試してください。TinyMceコントロールに追加するだけです

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

http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/encoding

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

于 2010-12-16T09:13:08.177 に答える
5

[AllowHtml]モデルで属性を使用してみてください。

class MyModel{
 [AllowHtml]
 public string Content{get;set;}
}
于 2012-03-03T11:03:38.390 に答える
4

デコレータを使用し[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;
    }
}
于 2009-08-04T02:25:36.090 に答える
0

厄介なことに、バージョン4のtinymceでは、encoding:xmlオプションが削除されたようです。

この回答からJavaScriptHTMLエンコード関数を使用することになり、送信ボタンで、フォームが送信される前に、tinymceのgetContentメソッドとsetContentメソッドを使用してテキストエリアのコンテンツをエンコードします。

于 2013-10-01T03:50:58.840 に答える
0

私も同じ問題を抱えていました。ASP.NET MVC検証機能を無効にしたくなかったので、次の解決策に到達するまで探し続けました。

tinyMCEプラグインコードでコンテンツをエンコードします(私は古いバージョンを使用しています)

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

この後、アプリケーション検証エラーは発生しなくなりました。次に、フォームを編集したときに、コードにhtmlタグが表示されるという別の問題が発生しました。

<strong>My input value</strong>

これの代わりに

私の入力値

したがって、コントローラーで値を取得するときに、次のようにそのフィールドのhtmlをデコードする必要がありました。

...    
entity.field = HttpUtility.HtmlDecode(entity.field);
于 2015-04-09T15:43:27.920 に答える