ModelState中“_FORM”的含义是什么?

时间:2009-12-10 15:59:37

标签: asp.net-mvc asp.net-membership

我正在浏览AccountController类(默认值)。我注意到 ModelState 在许多地方都使用了“ _FORM ”。对于,isntance:

if (String.IsNullOrEmpty(userName))
        {
            ModelState.AddModelError("username", "You must specify a username.");
        }

if (!String.Equals(password, confirmPassword, StringComparison.Ordinal))
        {
            ModelState.AddModelError("_FORM", "The new password and confirmation password do not match.");
        }

很容易说出用户名的含义(就像电子邮件,密码和确认密码一样)。但是什么是“_FORM”?它有特殊意义吗?我没看到它的定义。

感谢帮助

2 个答案:

答案 0 :(得分:3)

如果你没有带name="_FORM"的输入元素,这可以用来添加一个模型错误,该错误将显示在错误摘要中,但没有输入显示为红色。

答案 1 :(得分:0)

如上所述,它在MVC 2中具有指定验证摘要错误的方式。

但是在MVC 3及更高版本中,您需要将一个空字符串作为关键参数传递给ModelState.AddModelError()。传递“_FORM”表示验证摘要错误似乎不再起作用。See this question for more details