asp.net mvc - 整数字段的可选/默认值

Ada*_*ham 6 validation asp.net-mvc integer default-value optional

说我有一个像这样的viewmodel:

public class User 
{
    public int Id { get; set; }

    [Required(ErrorMessage="Username is required")]
    public string Username { get; set; }

    [Range(0, 255)]
    public int Owner { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

该页面被提交给它的控制器,我在那里检查ModelState.IsValid,但它没有通过.显然,所有者是必需的.这是为什么?我认为未分配的int的默认值是0.如果我调试应用程序并检查发送到控制器的对象,则该值确实为0.

如果我不想强迫用户输入0,那么最好的方法是什么?我已经尝试将[DefaultValue(0)]属性添加到类中的Owner属性,但它似乎没有任何区别.

即使这是一个新手或琐碎的习惯性概念问题,一些指导也会很好.

问候,

Len*_*rri 3

您是否尝试将 Owner 设置为可为空int值?

[Range(0, 255)]
public int? Owner { get; set; }
Run Code Online (Sandbox Code Playgroud)