Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC3验证_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc MVC3验证

Asp.net mvc MVC3验证,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,出于某种原因,我的标识列“ID”被MVC3验证了吗?为什么我没有指定需要它时会发生这种情况。??我的视图中有这个“@Html.HiddenFor(model=>model.Id)”,这应该不会引起任何问题 public class User { public int Id { get; set; } [Required] public string Name { get; set; } [Required] public string Email { ge

出于某种原因,我的标识列“ID”被MVC3验证了吗?为什么我没有指定需要它时会发生这种情况。??我的视图中有这个“@Html.HiddenFor(model=>model.Id)”,这应该不会引起任何问题

public class User {
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public string Email { get; set; }
}

请提供帮助。

值类型由MVC框架隐式验证


要关闭此选项,请将DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes设置为false。

我找到了答案。对于我的类,我有如下包装器(viewmodel)类:

   public class AdminsEditViewModel<T>
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="AdminsEditViewModel"/> class.
        /// </summary>
        public AdminsEditViewModel()
        {
            this.Admin = new Admin();
            this.GroupIn = new List<int>();
            this.GroupNotIn = new List<int>();
        }

        /// <summary>
        /// Gets or sets Admin.
        /// </summary>
        public Admin Admin { get; set; }
现在默认情况下,隐藏字段为0。哪个是正确的:)。
谢谢

您可以在元数据中指定要排除的属性,如下所示:

 [Bind(Exclude = "Id")]
 public class User {

     [Required]
     public string Name { get; set; }
     [Required]
     public string Email { get; set; }

 }

或者,只需将其声明为可为null,然后让SQL Server处理带有null的标识字段的值。这就是我一直在做的

public int? Id { get; set; }

只需在Id上添加键属性

public class User {
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public string Email { get; set; }
}
public class User {
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public string Email { get; set; }
}