从零开始学习ASP.NET CORE(十六)模型绑定和验证

模型绑定

上一篇文章中,表单中添加tagHelper
里面讲到模型的绑定

  • 模型绑定是将HTTP请求中的数据映射到控制器操作方法上对应的参数
  • 操作方法中的参数可以是简单类型,如整数,字符串等,也可以是复杂类型,如Custom,Employee,Order等

模型验证

类代码
public class Student
    {
        public int Id { get; set; }
        [Display(Name = "姓名")]
        [Required(ErrorMessage = "请输入名字"), MaxLength(50,ErrorMessage ="名字的长度不能超过50")]
        public string Name { get; set; }
        [Required]
        [Display(Name = "邮件地址")]
        [RegularExpression(@"^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$",ErrorMessage = "邮箱的格式不正确")]
        public string Email { get; set; }
        [Display(Name = "班级信息")]
        [Required]
        public ClassNameEnum ClassName { get; set; }
    }
    public enum ClassNameEnum
    {
        [Display(Name = "未分配")]
        None,
        [Display(Name = "一年级")]
        FirstGrade,
        [Display(Name = "二年级")]
        SecondGrade,
        [Display(Name = "三年级")]
        GradeThree
    }

Required: 指定该字段是必填的
Range : 指定允许的最小值和最大值
MinLength : 使用MinLength指定字符串的最小长度
MaxLength : 使用MinLength指定字符串的最大长度
Compare : 比较模型的2个属性。例如,比较Email和ConfirmEmail属性
RegularExpression: 正则表达式 验证提供的值是否与正则表达式指定的模式匹配

控制器中方法代码
public IActionResult Create(Student student)
        {
            if (ModelState.IsValid)
            {
                ......
            }
            return View();
        }

方法中也可以验证类里面属性的正确性

前端中用于显示的代码

其中asp-validation-summary 显示所有的验证提示

asp-validation-for显示当前的属性参数的验证提示

<form asp-controller="home" asp-action="create" method="post" class="mt-3">
    <div asp-validation-summary="All" class="text-danger"></div>
    <div class="row form-group">
        <label asp-for="Name" class=" col-sm-2 col-form-label"></label>
        <div class="col-sm-10">
            <input asp-for="Name" class="form-control" placeholder="请输入名字" />
            <span asp-validation-for="Name" class="text-danger"></span>
        </div>
    </div>
    <div class="row form-group">
        <label asp-for="Email" class=" col-sm-2 col-form-label"></label>
        <div class="col-sm-10">
            <input asp-for="Email" class="form-control" placeholder="请输入邮箱" />
            <span asp-validation-for="Email" class="text-danger"></span>
        </div>
    </div>
    <div class="row form-group">
        <label asp-for="ClassName" class=" col-sm-2 col-form-label"></label>
        <div class="col-sm-10">
            <select asp-for="ClassName" asp-items="Html.GetEnumSelectList<ClassNameEnum>()" class="custom-select mr-sm-2">
                <option value="">请选择</option>
            </select>
            <span asp-validation-for="ClassName" class="text-danger"></span>
        </div>
        
    </div>
    
    <div class="row form-group">
        <div class="col-sm-10">
            <button type="submit" class="btn btn-primary">创建</button>
        </div>
    </div>
</form>
效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core Authorization是一个集成在ASP.NET Core中的授权框架,可以用来实现身份验证和授权。下面介绍如何使用ASP.NET Core Authorization来实现身份验证和授权。 1. 配置身份验证 在Startup.cs文件中的ConfigureServices方法中添加以下代码来配置身份验证: ``` services.AddAuthentication(options => { options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = Configuration["Jwt:Issuer"], ValidAudience = Configuration["Jwt:Audience"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"])) }; }); ``` 这段代码使用JWT来进行身份验证,需要提供一个密钥作为签名,可以在appsettings.json中配置。 2. 在控制器中添加授权 在需要授权的控制器或方法上添加Authorize特性来限制访问: ``` [Authorize(Roles = "admin")] public class AdminController : Controller { // ... } ``` 这段代码限制只有拥有admin角色的用户才能访问AdminController。 3. 配置授权策略 通过配置授权策略,可以更细粒度地控制访问权限。在Startup.cs文件的ConfigureServices方法中添加以下代码: ``` services.AddAuthorization(options => { options.AddPolicy("RequireAdminRole", policy => policy.RequireRole("admin")); }); ``` 这段代码配置了一个名为RequireAdminRole的策略,要求用户必须拥有admin角色才能访问。 在控制器或方法上使用Authorize特性指定授权策略: ``` [Authorize(Policy = "RequireAdminRole")] public class AdminController : Controller { // ... } ``` 这段代码限制只有拥有admin角色的用户才能访问AdminController。 以上就是使用ASP.NET Core Authorization来实现身份验证和授权的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值