override error message (The value 'xxx' is not valid for Age) when input incorrect data type for input field asp.net mvc

前端 未结 5 501
庸人自扰
庸人自扰 2020-12-30 03:15

I\'ve tried to override error message when input incorrect data type in input field on HTML form. For example I have the model like this.

public class Person         


        
5条回答
  •  Happy的楠姐
    2020-12-30 04:08

    You can use DataAnnotations to override the default error messages in MVC, as well as provide your own validation for whatever fields you need to. See the following:

    http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

    http://www.asp.net/mvc/tutorials/validation-with-the-data-annotation-validators-cs

    If you are using EF, you will need to create a MetaData class off the EF generated class and then add the data annotations. The end of the 2nd article covers how to write these classes for entity framework.

    In your specific case you will want to do something like:

    using System.ComponentModel.DataAnnotations;
    
    public class Person
    {
       public string FirstName {get;set;}
    
       [Range(0, 110, ErrorMessage = "")]
       public int Age {get;set;}
    }
    

    UPDATE I did forget one thing that is easy to overlook, you need to include the following JS files for the data annotations to be picked up client side without having to do a post:

    • MicrosoftAjax.js

    • MicrosfotMvcValidation.js

    These should be stock in the Scripts folder of your project (if you are using MVC 2), and you need to include them either on your page or in your master page,

    
    
    

    you will also need to include

    <% Html.EnableClientValidation(); %>

    on the page in question.

    The client side validation will not let you submit the form until all fields meet validation requirements, as Kaspars Ozols points out you will still need to call Model.IsValid on your controller.

提交回复
热议问题