【发布时间】:2011-08-21 06:25:38
【问题描述】:
所以我的数据库中有下表:
Account [Id (PK, int), Name(string), Password(string)]
我使用 ADO.NET 实体数据模型 (.edmx) 和 ADO.NET 自跟踪实体生成器来自动生成我的模型。
我想为用户创建一个帐户/创建页面,以便在我的网站上创建一个新帐户。显然,我希望同时拥有一个密码字段和一个确认密码字段来验证用户输入。我有以下验证模型来解决这个问题:
namespace MD5DatabaseTest.Models
{
[MetadataType(typeof(AccountMetaData))]
public partial class Account {}
public class AccountMetaData
{
public int Id { get; set; }
[Required(ErrorMessage = "Please type a username")]
public String Name{ get; set; }
[Required(ErrorMessage = "Please type a password")]
public String Password { get; set; }
[Required(ErrorMessage = "Please confirm your password")]
[Compare("Password", ErrorMessage = "Passwords do not match")]
public String ConfirmPassword{ get; set; }
}
}
由于我的数据库没有 ConfirmPassword 列,我的 Create.cshtml 代码显然在这里失败:
<div class="editor-label">
Confirm your password
</div>
<div class="editor-field">
@Html.Password("ConfirmPassword")
@Html.ValidationMessageFor(model => model.ConfirmPassword)
</div>
可以使用 MVC 3 数据注释来验证这一点吗?还是我必须为(客户端)验证编写一个单独的 Jscript 函数?
【问题讨论】:
-
您知道您的比较属性中有错字。 “帕斯伍德”
-
已修复。这是因为我已经将我的代码从荷兰语翻译成英语,以便这里的人们更好地理解它。
标签: asp.net-mvc asp.net-mvc-3 validation