validation - 保存在编辑页面上时忽略“必需”属性

标签 validation asp.net-mvc-3

我有一个模型类,其中包含几个必填字段:

public class UserMetadata
{
   [Required(ErrorMessage = "Please enter a name.")]
   public string Name { get; set; }

   [Required(ErrorMessage = "Please enter a password.")]
   public string Password { get; set; }
}

在创建 View 上,如果我没有输入名称和/或密码,则会显示验证摘要错误。一切都很好。对于编辑 View ,我仅显示“名称”字段-不显示“密码”字段。

当我将更改保存在编辑页面上时,出现验证摘要错误,提示我必须输入密码。

我该如何控制密码字段的验证,以便对于编辑 View 不打扰?或者,我是否以错误的方式处理此问题?我仍然希望“名称”字段验证可在编辑 View 上工作。

编辑:

对于我的MVC项目,我使用的是Entity Framework。因此,我定义了一个“UserMetadata”类,以便可以将“[Required]”之类的内容附加到“User”类(位于EDMX文件中)的某些字段上。

我还应该解释一下,我正在使用一个 View 模型,例如“UserEditViewModel”,该模型具有附加的“User”属性。所以在我的帖子上:
[HttpPost]
public ActionResult Edit(UserEditViewModel inputViewModel)
{

    if(ModelState.IsValid) { inputViewModel.User blah.... }

}

认为我在输入此问题时有点着急。您认为重要的其他丢失信息,请大声疾呼。

干杯。
贾斯

最佳答案

我最终在我的操作方法中这样做:

ModelState.Remove("User.Password");

现在我的代码运行良好,只在“名称”字段上引发了验证错误,这正是我想要的。

关于validation - 保存在编辑页面上时忽略“必需”属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900645/

相关文章:

sql-server - 无法找到请求的.Net Framework 数据提供程序。它可能没有安装。 - 当遵循 mvc3 asp.net 教程时

asp.net-mvc-3 - mvc3 - 在不同区域使用局部 View

c# - 您可以 [过时] Razor 中的 DisplayTemplate 吗?

javascript - 如何重写 jQuery 验证两次?

php - 如果用户在数据库中有有效的 ID,我该如何注册用户?

ios - 在 IOS7 中验证更多文本字段

css - MVCMailer + Razor + CSS 问题

asp.net-mvc - 如何在MVC3 Razor中禁用DropDownListFor?

c# - 对 UserControl 进行验证工作

asp.net - Page.IsValid 是如何工作的?