c# – 如何在asp.net mvc中进行整数模型验证2

我有一个注册表,用户必须输入他们房子的平方英尺。我想这个值只是一个整数。有没有办法使用属性asp.net mvc来验证这个值?
是的,但是,您必须制作您想要创建的对象的平面版本,因为仅当MVC已将数据转换为模型时,才会使用属性进行验证。当您的值为int时,如果用户没有输入int,则无法验证,并且您将收到一个MVC错误消息,而不是您的错误消息。

你能发布想要制作的对象吗?

平面版本我的意思是所有的datetimes和ints是扁平版本中的蜇。

那我用这个:

    [DisplayName("Square meters")]
    [PosNumberNoZero(ErrorMessage = "need a positive number, bigger than 0")]
    public string squaremeters { get; set; }

在同一个文件中

public class PosNumberNoZeroAttribute : ValidationAttribute {
    public override bool IsValid(object value) {
        if (value == null) {
            return true;
        }
        int getal;
        if (int.TryParse(value.ToString(), out getal)) {

            if (getal == 0)
                return false;

            if (getal > 0)
                return true;
        }
        return false;

    }
}

如果我的modelstate是有效的,那么我使用AutoMapper将我的FlatModel转换成我的模型,这只是两行代码。

编辑:如果0是有效的数字:

public class PosNumberAttribute : ValidationAttribute {
    public override bool IsValid(object value) {
        if (value == null) {
            return true;
        }
        int getal;
        if (int.TryParse(value.ToString(), out getal)) {

            if (getal >= 0)
                return true;
        }
        return false;
    }
}
http://stackoverflow.com/questions/3548300/how-to-do-integer-model-validation-in-asp-net-mvc-2

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 如何在asp.net mvc中进行整数模型验证2