加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何使用ASP.NET MVC中的正确密钥向ModelState添加错误?

发布时间:2020-12-16 09:59:21 所属栏目:asp.Net 来源:网络整理
导读:我想在我的控制器中执行一些简单的表单验证. 以下是控制器操作的摘录: // other code if (!string.IsNullOrEmpty(editModel.NewPassword) editModel.RepeatNewPassword != editModel.NewPassword) { // problem line... How to I get the key from editMode
我想在我的控制器中执行一些简单的表单验证.

以下是控制器操作的摘录:

// other code

            if (!string.IsNullOrEmpty(editModel.NewPassword)
                && editModel.RepeatNewPassword != editModel.NewPassword)                {
                // problem line... How to I get the key from editModel?
                ModelState.AddModelError("","The new password does not match the repeated password.")
            }

// other code

似乎必须使用字符串作为错误的键.有没有办法可以从模型中生成核心键,或者我应该检查输入名称Html.PasswordFor(x => x.NewPassword)是什么?

解决方法

或者在ViewModel中,您可以执行此操作

public class ClassName
    {
        public string Password { get; set; }

        [Compare("Password","Password Must Match")]
        public string ConfirmPassword { get; set; }
    }

这是mvc3的新功能,您可以在mvc3中轻松实现这样的自定义属性

因为IsValid现在收集一个ValidationContext参数,该参数包含有关正在执行的验证的信息,如模型的类型和与之关联的元数据,因此您可以使用反射来获取其他属性及其值,CompareAttribute使用此功能

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读