c# - 验证所需的两个字段之一

标签 c# asp.net-mvc model-view-controller

我有 2 个字段:

FirstName

LastName

而且其中只有一个是必需的。但是如果两者都被省略,我希望这两个字段都被突出显示。如果其中一项已填写,则模型没问题,应提交表单。

如何做到这一点?

最佳答案

所有复杂的验证都从您的 View 模型继承自 IValidatableObject 开始。然后您覆盖 Validate 并放入您自己的验证规则。

IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
    if (String.IsNullOrWhiteSpace(FirstName) && String.IsNullOrWhiteSpace(LastName))
    {
        yield return new ValidationResult("A name must be entered.", new string[] { "FirstName", "LastName" });
    }
}

请注意,这仅确保服务器端验证此规则。如果您想要它在客户端,您需要编写自己的 JavaScript/jQuery 代码来处理验证。

关于c# - 验证所需的两个字段之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931422/

相关文章:

c# - FFMPEG C# Winforms 输出到文本框

c# - 线程是否在等待锁 FIFO?

asp.net - DropDownlist 或 DropDownListFor Html 助手之间的区别

java - 使用 MVC 和 DAO 模式在 JSP 页面的 HTML 中显示 JDBC ResultSet

javascript - 如何使用 javascript 回发到不同的表单

c# - 检查给定的可执行文件是否经过数字签名且有效?

c# - 在 .NET 中进行 URL 重写的最简单方法

asp.net-mvc - ASP.Net MVC中的实时视频聊天+录制解决方案

java - 从另一个 Controller 类设置 boderpane 中心

c# - JavaScript 在本地工作,但在部署到网络服务器时无法工作