私はもともとこれに似た見えたMVC副作用は
@Html.TextAreaFor(x => x.Text)
私のコントローラのアクションで定義された私の強く型付けされたビュー内のTextAreaを持っていますこれはうまくいった。ユーザーがTextAreaに入力したテキストは、コントローラに渡され、Entity Framework経由でSQL ServerのPostテーブルに保存されました。このフィールドのデータ型はvarchar(1000)です。 ([StringLength(1000)]検証でMetadataTypeを使用するテキストフィールドのモデル検証もあります)。
一部のHTMLソースをコピーしてTextAreaに貼り付けて送信しようとすると、次のエラーが:
エラーがthis questionに私を導いた
「潜在的に危険のRequest.Form値がクライアントから検出された」、と私は単純に追加できるということがあったから奪う
[HttpPost, ValidateInput(false)]
そのタイプの検証を停止するには、私のActionに
これは素晴らしく機能しましたが、私がTextAreaに何を入れようとしても、問題は発生しませんでした。私がjavascript、html、またはT-SQLステートメントを引用符で囲んで貼り付けると、それでも問題なく動作します。私は、SQLテーブルに表示されるTextAreaに入力された文字が正確に表示されていることを確認し、テキストを表示に戻すと、ソース内で各文字がHTMLに変換され、画面上の表示が私がそれを入力するとしました。私はこれを達成するためにテキスト変換を何もしませんでした。私がそれを望むように、デフォルトではすべてが正確に動作しているようです。もちろん、私はこれをうれしく思いますが、検証を無効にすることについて読んだときに、これを行うことの結果を理解する必要があるという警告がしばしば続き、私はそうは思わない。だから私は不思議です、結果は何ですか?入力検証を無効にした結果、誰かがTextAreaに入力する可能性のあるものがありますか?
関連する場合は、MVC4、.NET 4.0、Entity Framework 4.4、SQL Server 2012 Expressです。
ありがとうございました。正確に私が探していた情報の種類。 – TTT
がリンクを追加しました、それはもともとそれをしたことを誓う! –