我有一个适用于管理员和普通用户的“新用户”表单。两种形式都使用RegisterModel
public class RegisterModel
{
[Required]
public string Name { get; set; }
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
不同之处在于,在我的前端“新用户”页面上,我希望用户提供自己的密码。但在后端,我希望系统生成密码。
由于我RegisterModel
对两种形式都使用相同的,所以我在后端得到一个验证错误,说Password is required.
.
我想,我可以通过将它添加到我的控制器来解决这个问题:
[HttpPost]
public ActionResult New(RegisterModel model)
{
model.Password = Membership.GeneratePassword(6, 1);
if (TryValidateModel(model))
{
// Do stuff
}
return View(model);
}
但我仍然收到错误消息Password is required.
。当我调用TryValidate
控制器时,为什么会出现这个问题?
这个问题的最佳实践是什么,创建一个单独的RegisterModelBackEnd
或有其他解决方案吗?