gpt4 book ai didi

asp.net-mvc - 如何防止 Fluent Validation 在特定条件下验证模型

转载 作者:行者123 更新时间:2023-12-03 19:58:06 25 4
gpt4 key购买 nike

我在表单上有两个名称不同的提交按钮。在 Controller 中
我有一个 HttpPost 操作方法,当单击两个提交按钮中的任何一个时,我会调用该方法。下面是 action 方法的内部结构:

public ActionResult Save(Document model){
if(Request["btnSave"]!=null){
if (ModelState.IsValid){
//go ahead and save the model to db
}
}else{//I don't need the model to be validated here
//save the view values as template in cache
}
}

因此,当单击名称为“btnSave”的按钮时,我需要在将模型保存到 db 之前对其进行验证,但是如果单击另一个按钮,则不需要任何验证,因为我只是将表单值保存在缓存中稍后给他们回电。显然,在这种情况下我不需要验证任何东西。我使用流畅的验证。我的问题是无论我按下哪个按钮都会收到警告。我可以控制 FV 何时验证模型吗?

最佳答案

您可以添加属性 btnSave到您的模型:

public class Document
{
public string btnSave {get; set;} // same name that button to correctly bind
}

并在您的验证器中使用条件验证:
public class DocumentValidator : AbstractValidator<Document>
{
public DocumentValidator()
{
When(model => model.btnSave != null, () =>
{
RuleFor(...); // move all your document rules here
});

// no rules will be executed, if another submit clicked
}
}

关于asp.net-mvc - 如何防止 Fluent Validation 在特定条件下验证模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com