簡體   English   中英

動態繞過服務器端模型驗證ASP.NET MVC

[英]Bypass server-side model validation dynamically ASP.NET MVC

我現在在一個現有的asp.net MVC應用程序上工作,該應用程序在一個網頁上有幾個提交按鈕(例如,忽略,刪除,更新,提交...),它們都向服務器發送發布請求,服務器將執行根據請求操作類型(例如,忽略,刪除,更新,提交)執行不同的操作。

但是,提出了一個問題,即無論操作如何,總是會觸發模型驗證。 根據業務規則,我們僅需要對某些特定操作執行驗證。 驗證后,我可以清除modelstate中的錯誤。 (例如MVC3刪除ModelState錯誤 )。

但是,我希望有更好的方法來根據客戶端的操作參數繞過模型驗證。

順便說一句:不允許我顯着改變其工作方式(例如,發送給另一個不關心驗證的操作的動作),所以我希望有一些技巧可以輕松實現這一目標。

我假設現在您正在檢查模型狀態錯誤,例如...

if (ModelState.Valid)
{... valid and do something...}

如果是這樣,您可以在事前考慮一些額外的事前檢查。 例如,如果它是一個刪除提交,則可以事先檢查。

bool isDelete = ***check some value***

if (isDelete || ModelState.Valid)
{... valid and do something...}

這樣,即使模型狀態無效,它仍會向前移動。

要考慮的一件事是,您將需要在模型中進行設置以告訴您正在發生什么動作。 這可能意味着使用javascript捕獲提交,設置模型字段,然后執行提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM