我有一个页面,我想要一个包含一些详细信息的项目列表(标题项目)以及一个查看链接和一个编辑它们的链接。此外,在列表顶部,我想要一个表单来获取基本详细信息(开始和结束日期)并使用该数据创建一个新的标题项。
我做了什么:
- 创建了一个标头控制器
- 创建了一个索引视图(获取项目列表)
- 创建了一个 startHeader 视图(有一个带有开始、结束日期和一个按钮的表单,表单的 actionName 为“addHeader”)
- 为开始和结束日期添加了“ValidationMessageFor”
- 将 startHeader 视图作为部分视图添加到索引视图
除了一些验证外,一切似乎都正常工作。必填字段验证似乎按预期工作(即,如果您没有输入开始日期并单击显示“需要开始日期”的按钮)。
但是,我添加了一些似乎不起作用的额外验证:
- 将 IValidatableObject 接口添加到头类
添加了验证码
if (this.StartDate > this.EndDate) { yield return new ValidationResult("开始日期必须早于结束日期。", new[] { "StartDate" }); }
- 当按下按钮时,此代码按预期运行
- 但是它不会停留在索引屏幕上并显示验证消息
- 而是通过 addHeader 视图
- 我曾期望这与所需的字段验证一样工作并显示验证消息
我在这里缺少什么吗?
- 为什么此验证正在运行,但不显示错误消息?
- 我是否需要添加一些内容才能使此验证运行并保留在页面上?
- 有没有更好的方法来做这样的事情?