0

呼び出されたときに検証したくないコントローラーがあります。

私のコントローラー:

[Authorize(Roles = "Admin")]
[HttpPost]
[ValidateInput(false)]
public ActionResult Delete(MyLINQClass model)
{
    // Do something
}

私のモデル:

[MetadataType(typeof(MyLINQClass MetaData))]
public partial class MyLINQClass : DefaultModel, IValidatableObject
{
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
         // Do validation
    }
}

検証をトリガーしたくないので、追加[ValidateInput(false)]すると役立つと思いました。しかし、Validate()まだトリガーされています。

ASP MVC 3 と .NET 4 を使用しています。

4

1 に答える 1

1

モデルの[ValidateInput(false)]検証とは関係ありません。<、、などのリクエスト内の XSS 文字の ASP.NET 検証を無効にします。パラメーター>をバインドしようとすると、既定のモデル バインダーによって検証がトリガーされます。MyViewModel検証を実行したくない場合は、削除アクションがパラメーターとして受け取り、Validateメソッドを持たない別のビュー モデルを作成するだけです。

于 2011-10-08T14:46:21.030 に答える