Asp.net-Mvc
ASP.NET MVC ValidateInput(false) 停止使用 xVal 和 [RegularExpression] DataAnnotation
我想通過正則表達式驗證器攔截表單欄位中的“<”字元。我將分三個步驟描述問題:
第 1 步:當我嘗試送出包含“<”字元的欄位的表單時,我收到“潛在危險請求…” - 正如 ASP.NET 中所預期的那樣。
第 2 步:為了避免 ASP.NET 的 RequestValidation,我在控制器中用“[ValidateInput(false)]”裝飾了我的 Update 方法。
它按預期工作 - 現在我可以發布“<”字元而不會出錯。
第 3 步:我將 xVal 與 DataAnnotations 一起使用。例如,[Required] 或 [StringLength(255)] 按預期工作。
但是當我使用:[RegularExpression ("^[^<>]*$", ErrorMessage = “Special characters are not allowed.”)] 時,我再次收到“Potentially dangerousos request…”錯誤,儘管 [ValidateInput (false)] 指令。
發生了什麼?是否有更簡單的正則表達式驗證方法,但使用 [ValidateInput(false)]?當然,我希望我的驗證程式碼在模型中,而不是在控制器中。
不,這是 MVC 1 + xVal 中的一個問題。在 MVC 2 中,驗證按預期工作(不再需要 xVal) – Alex42
看起來機器人繼續將這個推到頂部。您能否將答案標記為已接受以便它知道?