3

HTML を許可するために開きたいドメイン モデルに説明フィールドがあります。フォームを送信すると、「危険な可能性があるリクエスト」というメッセージが表示されます。これは予想していたのですが、現在の設定では修正が難しいことがわかっています。

私のビューモデルには、次のような複数のオブジェクトがあります。

public class MyViewModel
{
    public ISomething Something { get; set; }
    public IAnotherThing Another { get; set; }
}

説明とインターフェイスが含まれている場所ISomethingとクラス自体は、mvc サイトの別のプロジェクトで定義されています。

コントローラー アクションに属性を追加するだけでよいと確信していValidateInput(false)ますが、必ずしもすべてを開いているわけではありません...この特定の説明だけを開きます。

とにかく、[AllowHtml]これが答えのように見えますが、 で定義されていSystem.Web.Mvcます。外部ライブラリへの参照を追加するのは面倒ですが、mvc4アプリケーションと同じソリューションであっても、利用可能なリストにないため、その参照を追加することさえできません。

他の人がこれを克服できたと想像せずにはいられませんが、私は打ち負かされたようです. どんな助けでも大歓迎です!

4

1 に答える 1

1

MetaDataType 属性を使用してモデルを拡張しようとしましたか?

モデルが部分クラスの場合、次のことができます。

namespace YourModelsNamespace
{
    [MetadataType(typeof(ISomethingMD))]
    public partial class ISomething
    {
    }

    public partial class ISomethingMD
    {
        [AllowHtml]
        public string Descriptin { get; set; }
    }
}

このようにして、モデルを「拡張」し、その特定のプロパティのメタデータを設定します。このクラスは MVC プロジェクトに含まれるため、モデルをより詳細に制御できます。このアプローチを使用して、表示名属性を追加したり、DataAnnotations 名前空間に他の属性を追加したりできます。

このクラスの名前空間は、モデルと同じである必要があることに注意してください。

于 2012-12-11T19:59:44.320 に答える