Summary of data validation examples in MVC

零下一度
Release: 2017-06-24 09:44:14
Original
1396 people have browsed it

1. General situation

For those who have used the MVC framework, they will be familiar with MVC data verification. For example, I have a Model As follows:

1 public class UserInfo2 {3 [Required(ErrorMessage = "UserName不可为空1111")]4 public string UserName { get; set; }5 public string Sex { get; set; }6 public string Mobile { get; set; }7 public string Address { get; set; }8 }
Copy after login

Front end:

1 @using (Html.BeginForm()) 2 { 3 @Html.AntiForgeryToken() 4 
5

UserInfo

6
7 @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 8
9 @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" })10
11 @Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } })12 @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })13
14
15
16 @Html.LabelFor(model => model.Sex, htmlAttributes: new { @class = "control-label col-md-2" })17
18 @Html.EditorFor(model => model.Sex, new { htmlAttributes = new { @class = "form-control" } })19 @Html.ValidationMessageFor(model => model.Sex, "", new { @class = "text-danger" })20
21
22
23 @Html.LabelFor(model => model.Mobile, htmlAttributes: new { @class = "control-label col-md-2" })24
25 @Html.EditorFor(model => model.Mobile, new { htmlAttributes = new { @class = "form-control" } })26 @Html.ValidationMessageFor(model => model.Mobile, "", new { @class = "text-danger" })27
28
29
30 @Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })31
32 @Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })33 @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })34
35
36
37
38 39
40
41
42 }
Copy after login

Effect:

##Yes, MVC can validate data by adding certain characteristics to some attributes. This may not be unfamiliar to everyone.

If that’s all it is, then there’s nothing wrong with it.

2. Common situations

In actual development, we mostly use EF or other methods to make every Tables or views correspond to a class model in the code. For the model generated through the database, we should not modify it. To take a step back, even if we add some data verification features to some attributes in this class, then the database will change. Later, if I regenerate these Models, the verification features we added before will be gone. So, how do we solve this problem?

Suppose:

1 public class UserInfo2 { 3 public string UserName { get; set; }4 public string Sex { get; set; }5 public string Mobile { get; set; }6 public string Address { get; set; }7 }
Copy after login
UserInfo is a model generated through the database. We should not modify the model generated by the database. But that is, we need to perform data verification on certain attributes in this model. For example, we need to perform non-null verification on the UserName attribute. So how do we do it?

Everyone usually thinks of partial classification. Yes, we can solve the above problems through partial classification.

First, we add the keyword partial to the class in the model, and then we write a partial class of this model.

1 public partial class UserInfo2 {3 [Required(ErrorMessage = "UserName不可为空1111")]4 public string UserName { get; set; }5 }
Copy after login
However, this will prompt us with an error, that is, there are duplicate attributes in the class. Yes, in some classes, attributes cannot have the same name. So, what should we do? The MVC framework has already given us a solution.

We can write like this:

1 [MetadataType(typeof(MeteUserInfo))]2 public partial class UserInfo3 {4 private class MeteUserInfo5 {6 [Required(ErrorMessage = "UserName不可为空1111")]7 public string UserName { get; set; }8 }9 }
Copy after login
In this way, our above problems will be easily solved.

The above is the detailed content of Summary of data validation examples in MVC. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!