繁体   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