2017-10-25 9 views
0

モデルの説明をビューからコントローラに送信したいと思います。しかし、特別なキャラクターの警告を再びスローします。コントローラの[ValidateInput(false)]なしでHttpUtility.HtmlEncodeをビューで使用したいと思います。可能です ?HttpUtility.HtmlEncodeを使用してビューからコントローラにモデルを送信する方法

@model UserModel 
@using (Html.BeginForm("CreateUser", "Home", FormMethod.Post)) 
{ 
    @Html.TextAreaFor(HttpUtility.HtmlEncode(x => x.Description)) 

    <button type="submit" id="btnCreate">Create</button> 
} 
+0

あなたはtextareaにhtml文字列を入力しようとしているような、悪いアプローチであるコントローラに渡しているようです。私は多くのテキストエディタが利用可能であることを示唆したいと思います。ちょうどあなたは自分のjsとcssを接続する必要がありますあなたのケースで最高の解決策が見つかったCKEditor –

+0

@ Html.TextBoxFor(HttpUtility.HtmlEncode(x => x.Description))を使用する方法 –

答えて

0

あなたのモデルに[AllowHtml]属性を追加してみませんか?

public class ViewModel 
{ 
    [AllowHtml] 
    public string Description { get; set; } 
} 

いいえ、セキュリティ上のバグではありません。 ASP.Net MVCには自動HTMLエンコードがあります。 Razorには、Html.Encodeメソッドも含まれています。このメソッドを呼び出すと、ダブルエンコードされます。したがって、Html.Encodeを2回使用することはできません。

+0

私はあなたの答えを知っています。しかし、それはセキュリティのバグですか? ViewでHttpUtility.HtmlEncodeを使用したいと思います。 –

関連する問題