ASP.NET MVC は 従来の ASP.NET Form と同様 リクエストバリデーション機能があります。 危険性のあるリクエストデータがクライアントから送信すると下記エラーメッセージが表示されます。

'/' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

危険な可能性のある Request.Form 値がクライアント (xxx="<y>
aaaa</y>...") から検出されました。

入力データの危険性の検証はほとんどの場合は有用な振る舞いです。状況によってはフォームデータに 検証エラーとなる html や xml タグなどを許可したい場合があります。ASP.NET Form では web.config や Pageのディレクティブで validateRequest  をfalse にすることで検証を無効化することができました。ASP.NET MVC の場合でのリクエスト検証の無効化を記載します。

方法1:HtmlInputAttribute を使用する

特定の入力フォームに対してのみ入力の検証を許可するには HtmlAllowedAttribute をモデルクラスのプロパティに設定します。

方法2:ValudateInputAttribute を使用する

コントローラーのすべてのアクションメソッドに対して 検証を無効化する場合は ValidateInputAttribute をコントローラクラスに付与します。 特定のアクションメソッドに対して リクエストの検証を無効化する場合は コントローラーのアクションメソッドに対して [ValidateInput(false)] のようにアトリビュートを付与します。

 

- Razor のView で htmlタグをエンコードされずにそのまま出力するには
入力検証とは逆に  html タグをエンコードされずにそのまま出力するにはMvcHtmlString や HtmlHelper.Raw メソッドを使用します。

javascript 用の文字列にエンコードするには AjaxHelper.JavaScriptStringEncode メソッドを Html.Raw(Ajax.JavascriptStringEncode(文字列)) のように Razor の Viewで使用できます。

説明は以上です。何かありましたらご連絡ください。