modelnet40介绍_asp.net core系列 40 Web 应用MVC 介绍与详细示例

本文介绍了ASP.NET Core MVC架构模式的优势,包括关注点分离,以及核心特性如路由、模型绑定和验证。路由是URL映射组件,模型绑定能将客户端请求数据转换为控制器参数,而模型验证则利用数据注释属性确保数据的准确性和安全性。此外,文章还提及了依赖注入在控制器和视图中的应用。
摘要由CSDN通过智能技术生成

一. MVC介绍

MVC架构模式有助于实现关注点分离。视图和控制器均依赖于模型。 但是,模型既不依赖于视图,也不依赖于控制器。 这是分离的一个关键优势。 这种分离允许模型独立于可视化展示进行构建和测试。ASP.NET Core MVC 包括以下功能:

路由、模型绑定、模型验证、依赖关系注入、筛选器、区域、Web API、可测试性、Razor 视图引擎、强类型视图、标记帮助程序、 视图组件。

(1) 路由

ASP.NET Core MVC 建立在 ASP.NET Core 的路由之上,是一个功能强大的 URL 映射组件,可用于生成具有易于理解和可搜索 URL 的应用程序。关于路由知识,请查看asp.net core 系列第5,6章。

(2) 模型绑定(Model)

ASP.NET Core MVC 模型绑定将客户端请求数据(窗体值(form)、路由数据、查询字符串参数、HTTP 头)转换到控制器(Controller)可以处理的对象中。 因此,控制器逻辑不必找出传入的请求数据;它只需具备作为其Action方法的参数的数据。下面的LoginViewModel就是一个模型类。

public async Task Login(LoginViewModel model, string returnUrl = null)

(3)模型验证

ASP.NET Core MVC 通过使用数据注释验证属性。 验证属性在值发送到服务端前,在客户端上进行检查。并在调用控制器action前在服务端上进行检查。

usingSystem.ComponentModel.DataAnnotations;public classLoginViewModel

{

[Required]

[EmailAddress]public string Email { get; set; }

[Required]

[DataType(DataType.Password)]public string Password { get; set; }

[Display(Name= "Remember me?")]public bool RememberMe { get; set; }

}//服务端控制器action验证

public async Task Login(LoginViewModel model, string returnUrl = null)

{//验证模型

if(ModelState.IsValid)

{//work with the model

}returnView(model);

}

(4) 依赖注入

依赖关系注入除了在控制器上通过构造函数请求所需服务,还可以使用@inject 指令,应用在视图文件上。下面是视图页面上通过依赖注入获取服务对象。

@inject SomeService ServiceName

@ServiceName.GetTitle

@ServiceName.GetTitle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值