首页 后端开发 php教程 分享MVC数据验证实例介绍

分享MVC数据验证实例介绍

Jun 15, 2017 pm 01:48 PM
mvc 数据验证

这篇文章主要为大家详细介绍了MVC数据验证的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、一般情况

对于使用过MVC框架的人来说,对MVC的数据验证不会陌生,比如,我有一个Model如下:


public class UserInfo
  {
    [Required(ErrorMessage = "UserName不可为空1111")]
    public string UserName { get; set; }
    public string Sex { get; set; }
    public string Mobile { get; set; }
    public string Address { get; set; }
  }
登录后复制

前端:


@using (Html.BeginForm()) 
{
  @Html.AntiForgeryToken()
  <p class="form-horizontal">
    <h4>UserInfo</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <p class="form-group">
      @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      @Html.LabelFor(model => model.Sex, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.Sex, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Sex, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      @Html.LabelFor(model => model.Mobile, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.Mobile, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Mobile, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      @Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
      <p class="col-md-10">
        @Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
      </p>
    </p>
    <p class="form-group">
      <p class="col-md-offset-2 col-md-10">
        <input type="submit" value="Create" class="btn btn-default" />
      </p>
    </p>
  </p>
}
登录后复制

效果:

是的,MVC可以通过对一些属性添加一定的特性来对数据进行验证。这对大家来说可能并不陌生。

如果仅仅是这样就完事了,那么也就没事么意思了。

二、常用情况

在实际的开发中,我们大都是通过EF,或者其他方式,使得数据库中的每一个表或视图,都在代码中对应的一个类模型,对于通过数据库生成的模型,我们不宜修改,退一步讲,即使我们在这个类中对一些属性增加一些数据验证的特性,那么,数据库发生变化后,如果我再重新生成这些Model,我们之前添加好的验证特性将没有了,那么,我们如何解决这样的问题呢?

假如:


public class UserInfo
  {  
    public string UserName { get; set; }
    public string Sex { get; set; }
    public string Mobile { get; set; }
    public string Address { get; set; }
  }
登录后复制

UserInfo是通过数据库生成的一个模型,对于数据库生成的模型,我们不宜修改。但那是,我们又需要对这个模型中的某些属性进行数据验证,比如需要对UserName属性进行非空验证,那么我们如何做呢?

大家通常会想到部分类,是的,我们可以通过部分类来解决上述问题。

首先,我们将模型中的类加上关键字 partial ,然后我们再写一个这个模型的部分类。


public partial class UserInfo
  {
    [Required(ErrorMessage = "UserName不可为空1111")]
    public string UserName { get; set; }
  }
登录后复制

但是,这样会提示我们一个错误,就是类中存在重复的属性,是的,部分类中,属性是不可以重名的。那么,我们该怎么办呢,MVC框架已经给了我们解决方案了。

我们可以这么写:


[MetadataType(typeof(MeteUserInfo))]
  public partial class UserInfo
  {
    private class MeteUserInfo
    {
      [Required(ErrorMessage = "UserName不可为空1111")]
      public string UserName { get; set; }
    }
  }
登录后复制

这样,我们上述的问题就迎刃而解了。

以上是分享MVC数据验证实例介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在 Excel 中创建带有符号的下拉列表 如何在 Excel 中创建带有符号的下拉列表 Apr 14, 2023 am 09:04 AM

在 Excel 工作表中创建下拉列表很容易,只要它是一个普通的下拉菜单即可。但是,如果您必须通过添加特殊符号使其特别,或者通过添加一些文本以及符号使其更加特别,该怎么办?好吧,听起来很有趣,但想知道这是否可能?当 Geek Page 随时为您提供帮助时,您有什么不知道的答案?这篇文章都是关于创建下拉菜单,带有符号以及符号和文本。希望你喜欢阅读这篇文章!另请阅读:如何在 Microsoft Excel 中添加下拉菜单第 1 部分:创建仅包含符号的下拉列表要创建带有符号的下拉菜单,我们首先需要创建源

PHP MVC 架构:构建面向未来的 Web 应用程序 PHP MVC 架构:构建面向未来的 Web 应用程序 Mar 03, 2024 am 09:01 AM

引言在当今快速发展的数字世界中,构建健壮、灵活且可维护的WEB应用程序至关重要。PHPmvc架构提供了实现这一目标的理想解决方案。MVC(模型-视图-控制器)是一种广泛使用的设计模式,可以将应用程序的各个方面分离为独立的组件。MVC架构的基础MVC架构的核心原理是分离关注点:模型:封装应用程序的数据和业务逻辑。视图:负责呈现数据并处理用户交互。控制器:协调模型和视图之间的交互,管理用户请求和业务逻辑。PHPMVC架构phpMVC架构遵循传统MVC模式,但也引入了语言特定的功能。以下是PHPMVC

PHP8新特性示例:如何使用类型声明和代码加强数据验证? PHP8新特性示例:如何使用类型声明和代码加强数据验证? Sep 12, 2023 pm 01:21 PM

PHP8新特性示例:如何使用类型声明和代码加强数据验证?引言:随着PHP8的发布,开发人员们迎来了一系列的新特性和改进。其中,最让人激动的之一是类型声明和代码加强数据验证的功能。本文将以一些实际示例为例,介绍如何利用这些新特性来加强数据验证,提高代码的可读性和可维护性。类型声明的优势:在PHP7之前,变量的类型是可以随意变化的,这为数据验证带来了很大的困难。

PHP MVC 架构的进阶指南:解锁高级功能 PHP MVC 架构的进阶指南:解锁高级功能 Mar 03, 2024 am 09:23 AM

mvc架构(模型-视图-控制器)是PHP开发中最流行的模式之一,因为它为组织代码和简化WEB应用程序的开发提供了清晰的结构。虽然基本的MVC原理对于大多数Web应用程序来说已经足够,但对于需要处理复杂数据或实现高级功能的应用程序,它存在一些限制。分离模型层分离模型层是高级MVC架构中常见的一种技术。它涉及将模型类分解为更小的子类,每个子类专注于特定功能。例如,对于一个电子商务应用程序,您可以将主模型类分解为订单模型、产品模型和客户模型。这种分离有助于提高代码的可维护性和可重用性。使用依赖注入依赖

excel数据验证怎么用-excel数据验证的使用方法 excel数据验证怎么用-excel数据验证的使用方法 Mar 04, 2024 pm 12:25 PM

大家知道excel数据验证怎么用吗?下文小编就带来了excel数据验证的使用方法,希望对大家能够有所帮助,一起跟着小编来学习一下吧!1、首先在EXCEL表格中,选择需要设置下拉选项的单元格,如下图所示:2、然后在菜单栏上点击【数据】,如下图所示:3、打开数据菜单后,就能看到【数据验证】选项了,点击【数据验证】后,在打开的选项中继续点击【数据验证】即可打开数据验证窗口去进行设置,如下图所示:上面就是小编为大家带来的excel数据验证怎么用的全部内容,希望对大家能够有所帮助哦。

如何在Python中进行数据可靠性验证和模型评估 如何在Python中进行数据可靠性验证和模型评估 Oct 20, 2023 pm 04:06 PM

如何在Python中进行数据可靠性验证和模型评估数据可靠性验证和模型评估是在使用机器学习和数据科学模型时非常重要的一步。本文将介绍如何使用Python进行数据可靠性验证和模型评估,并提供具体的代码示例。数据可靠性验证(DataReliabilityValidation)数据可靠性验证是指对所使用的数据进行验证,以确定其质量和可靠性。以下是一些常用的数据可

PHP语言开发中如何处理开发环境与生产环境的数据不一致错误? PHP语言开发中如何处理开发环境与生产环境的数据不一致错误? Jun 10, 2023 am 10:31 AM

随着互联网的快速发展,开发人员的任务也随之多样化和复杂化。特别是对于PHP语言开发人员而言,在开发过程中面临的最常见问题之一就是在开发环境和生产环境中,数据不一致的错误问题。因此,在开发PHP应用程序时,如何处理这些错误是开发人员必须面对的一个重要问题。开发环境和生产环境的区别首先需要明确的是,开发环境和生产环境是不同的,它们有着不同的设置和配置。在开发环境

ThinkPHP6表单验证与数据验证:保证数据的合法性 ThinkPHP6表单验证与数据验证:保证数据的合法性 Aug 26, 2023 pm 01:55 PM

ThinkPHP6表单验证与数据验证:保证数据的合法性在Web应用程序开发过程中,表单验证是保证数据的合法性和完整性的重要一环。ThinkPHP6框架提供了强大的表单验证和数据验证功能,可以简化开发过程,并帮助我们减少错误和漏洞的产生。一、表单验证验证规则声明ThinkPHP6支持使用注解方式对控制器的请求方法进行验证规则的声明。我们可以在控制器的请求方法上

See all articles