VSCode创建ASP.NET Core MVC项目(3:实现字段验证及检索功能)

  接着前两篇文章,继续实现基于MVC的电影数据字段验证及检索功能。

增加字段验证

  首先介绍字段验证,是因为基于MVC的字段验证功能与之前的Razor页面项目的字段验证功能相同,都是在数值类的属性上添加验证特性(具体见参考文献及之前的文章)。其它需要补充的的是在控制类的响应函数中,通过ModelState.IsValid判断新增或编辑页面中的属性是否无效或未经过验证(详细的说明可以参考下图及参考文献2)。
在这里插入图片描述
  字段验证的效果如下图所示,关于字段验证的说明请见之前的文章及参考文献1。
在这里插入图片描述

增加检索功能

  在之前的Razor页面项目中,主要通过在页面对应的处理类中定义具有BindProperty特定的属性,同时在页面中用asp-for指定属性的方式实现的检索。而在MVC项目中,教程中介绍了以下形式的检索功能实现方式。
  1)通过在URL中增加检索条件检索

  本方式不用在页面中增加检索相关的元素,主要是用过URL将检索用的条件传递给控制类中的响应函数。如下所示,Index函数用于响应访问主页面的请求,该函数有一个输入参数searchString,如果在URL最后没有包含该参数的值,则该函数的输入参数值为空,如果URL最后包含有参数值(https://localhost:5001/?SearchString=When),则函数会根据检索条件进行检索并返回结果(如下图所示)。如果有多个参数,参数与参数之间用&相连(如https://localhost:5001/?MovieGenre=&SearchString=123)。

public IActionResult Index(string searchString)

在这里插入图片描述  2)在页面中增加单个检索条件
  在数据表格上方增加用于检索的表单,包含单个检索条件,在input标签中用name指定字段对应的检索参数名称,便于点击Filter按钮时生成完整的带检索值的URL。
  这里需要注意的是为了复用响应页面请求的控制器类中的Index函数,微软的教程中特意将表单的响应方法改为了get。
  程序的效果截图如下所示:

在这里插入图片描述在这里插入图片描述  3)在页面中增加多种复杂检索条件
  可以照上面介绍的方式增加多种简单的、需要用户输入的检索条件。不过如果检索条件中有下拉选择等复杂的方式(尤其是下拉选项内容从后台获取),上述方式实现起来就比较麻烦。
  在微软的教程中,检索条件包括电影类型(下拉选择)及标题(用户输入),此时页面需要响应函数提供两类数据:下拉选项内容及电影数据检索结果。为了方便的传递数据,定义一个新的数据类型,其内包括下拉选项内容集合及电影数据检索集合,同时类中还定义了用于检索的两类属性(电影类型及标题),便于在检索表单中用asp-for指定输入内容对应的检索项。具体的细节在此不详述,有兴趣的请查看参考文献3。
  程序的效果截图如下所示:

在这里插入图片描述在这里插入图片描述

参考文献:
[1]https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-mvc-app/controller-methods-views?view=aspnetcore-5.0
[2]https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.aspnetcore.mvc.modelbinding.modelstatedictionary.isvalid?view=aspnetcore-5.0
[3]https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/tutorials/first-mvc-app/start-mvc/sample

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值