ASP.NET MVC 的注解

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace 注解的应用.Models
{
public class User
{
[HiddenInput(DisplayValue = false)]
//[ScaffoldColumn(false)]
[Display(Name="编号")]
public int Id { get; set; }

[Display(Name="用户名")]
//[StringLength(10)]
//[Common.MyStringLength(10,ErrorMessage="{0}字数太多了!")]
//[Common.MyStringLength(5)]
[Common.MyStringLength(5,ErrorMessage="{0}字符太少了")]
[Required(ErrorMessage="请输入用户名")]
[Remote("CheckValid", "Home", AdditionalFields = "UserName,Pwd",ErrorMessage="该用户已存在,请重新输入")]
public string UserName { get; set; }

[DataType(DataType.Password)]
[Display(Name="密码")]
[System.ComponentModel.DataAnnotations.Compare("UserName",ErrorMessage="密码不一致")]
public string Pwd { get; set; }

[DisplayFormat(DataFormatString="{0:C}",ApplyFormatInEditMode=false)]
[Range(10,30)]
public decimal Price { get; set; }

//使用DataType(DataType.EmailAddress,ErrorMessage="请输入正确的Email地址")自定义的错误消息不会生效
//[DataType(DataType.EmailAddress,ErrorMessage="请输入正确的Email地址")]
[RegularExpression(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "请输入正确的Email地址")]
public string Email { get; set; }
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;

namespace 注解的应用.Common
{
/// <summary>
/// 自定义注解类,自定义注解不支持客户端验证,在模型绑定时执行IsValid方法执行验证逻辑,
/// 如果不调用FormatErrorMessage方法进行格式化,传入格式化的错误消息,则在
/// [Common.MyStringLength(10,ErrorMessage="{0}字数太多了!")]中自定义的消息不回生效
/// </summary>
public class MyStringLengthAttribute:ValidationAttribute
{
private readonly int MaxLength;
public MyStringLengthAttribute(int maxLength)
{
this.MaxLength = maxLength;
}

//protected override ValidationResult IsValid(object value, ValidationContext validationContext)
//{

// string content = value.ToString();
// if (content.Length > MaxLength)
// {
// //return new ValidationResult("输入的字符太多了!^_^");

// string errorMessage = FormatErrorMessage(validationContext.DisplayName);
// return new ValidationResult(errorMessage);
// }
// return ValidationResult.Success;
// //return base.IsValid(value, validationContext);
//}

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
if (value.ToString().Length < MaxLength)
{
//return new ValidationResult("请输入" + MaxLength + "位以上长度的字符!");
string errorMessage = FormatErrorMessage(validationContext.DisplayName + "请输入" + MaxLength + "位以上长度的字符!");
return new ValidationResult(errorMessage);
}
}
return ValidationResult.Success;
}

}
}

时间: 2024-10-08 00:45:26

ASP.NET MVC 的注解的相关文章

asp.net MVC 验证注解

对于Web系统,对于用户的输入验证是必须的.不仅需要在客户端对用户的输入进行验证,在服务端也需要对用户的执行进行验证. asp.net MVC中对于验证提供了一种注解机制.注解是一种通用机制,可以用来向框架注入元数据,同时框架不只驱动元数据的验证,还可以生产显示和编辑模型的HTML标记时使用元数据. 1.Required Required 是MVC提供的一种注解.当属性中一个是null或空时,Required特性将会引发一个验证错误. [Required(ErrorMessage=""

Asp.net MVC 数据注解与验证

数据注解特性定义在名称空间System.ComponentModel.DataAnnotations中(有些特性定义在其他名称空间中),它们提供了服务器端验证的功能,当在模型的属性上使用这些特性时,框架也支持客户端验证. 常用特性 1.Required --必填字段示例:[Required]2.StringLength --字符长度限制示例:[StringLength(16,MinimumLength=3)]3.RegularExpression --正则表达式验证示例:[RegularExpr

数据注解和验证 &ndash; ASP.NET MVC 4 系列

       不仅在客户端浏览器中需要执行验证逻辑,在服务器端也需要执行.客户端验证能即时给出一个错误反馈(阻止请求发送至服务器),是时下 Web 应用程序所期望的特性.服务器端验证,主要是因为来自网络的信息都是不可信任的.        当在 ASP.NET MVC 设计模式上下文中谈论验证时,主要关注的是验证模型的值.ASP.NET MVC 验证特性可以帮助我们验证模型值,且这样验证特性是可扩展的,所以我们可以采用任意想要的方式构建验证模式,默认方法是一种声明式验证,即数据注解特性.    

【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策略(MVC5+EF6) [第四篇]ASP.NET MVC快速入门之完整示例(MVC5+EF6) [番外篇]ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6) 请关注三石的博客:http://cnblogs.com/sanshi 数据库连接字符串 上一篇文章中,我们使用MVC的

asp.net mvc常用的数据注解和验证以及entity framework数据映射

终于有时间整理一下asp.net mvc 和 entity framework 方面的素材了. 闲话少说,步入正题: 下面是model层的管理员信息表,也是大伙比较常用到的,看看下面的代码大伙应该不会陌生, 在此Model上我们用到了asp.net mvc的数据注解和验证,entity framework对数据库的映射 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.T

ASP.NET MVC5(一):ASP.NET MVC概览

ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. ASP.NET MVC模式简介 MVC将Web应用程序划分为三个主要的部分,以下是MSDN给出的定义: 模型(Model):模型对象是实现应用程序数据域逻辑的应用程序部件. 通常,模型对象会检索模型状态并将其存储在数据库中. 例如,Product 对象可能会从数据库中检索信息,操作该信息,然后将更新的信息写回到 SQL S

Ajax - ASP.NET MVC 4 系列

       ASP.NET MVC 框架中包含一组 Ajax 辅助方法,可以用来创建表单和指向控制器操作的链接,它们是异步的,且不用编写任何脚本代码来实现程序的异步性,但需要引入脚本文件 jquery.unobtrusive-ajax.js,MVC 4 应用程序默认在 _Layout 视图中包含这个脚本:               当然,也可以去除它,而在需要的页面上手动引入:        Ajax 的 ActionLink 方法        在 Razor 视图中,可通过 Ajax 属

ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器

一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据模型中的各个字段的验证.这些特性用于定义常见的验证模式,例如范围检查和必填字段.而 DataAnnotations 特性使 MVC 能够提供客户端和服务器验证检查,使你无需进行额外的编码来控制数据的有效. 通过为模型类增加数据描述的 DataAnnotations ,我们可以容易地为应用程序增加验证

ASP.NET MVC学习之模型绑定(1)

一.前言 下面我们将开始学习模型绑定,通过下面的知识我们将能够理解ASP.NET MVC模型的模型绑定器是如何将http请求中的数据转换成模型的,其中我们重点讲述的是表单数据. 二.正文 1.简单类型绑定 学过一定ASP.NET MVC都会为这个特点所骄傲,就是能够将表单中与同名的参数映射,这相比操作ASP.NET控件来获取值轻便了许多,但是正如上面所说的那样要同名(大小写不区分),下面我们会讲述如何自己去指定. 首先我们在HomeController(如果不存在则创建)中获取表单中的值并显示: