宝哥软件园

ASP.NET MVC数据验证及相关内容

编辑:宝哥软件园 来源:互联网 时间:2021-09-09

一.数据核实

数据验证步骤:在模型类中添加与验证相关的特征标签,在客户端导入与验证相关的js文件和css文件,在服务器端使用与验证相关的Html辅助方法判断是否通过常用的验证标签

要求:非空验证字符串长度:验证字符串正则表达式的长度:正则表达式验证比较:比较两个字段的值是否相等范围:范围验证远程:服务器验证(您需要在控制器中编写一个返回值为JsonResult的操作)自定义验证标记与验证相关的js文件

ASP.NET MVC提供了两套验证框架,分别是Microsoft验证框架和jquery验证框架。默认情况下,jquery验证框架处于启用状态。

请注意,这些js文件的顺序不能颠倒;用于数据验证的样式在Site.css文件中定义。

验证相关的Html辅助方法

注:1。Html。ValidationMessage()和Html。ValidationMessageFor()必须用于显示验证失败的提示信息;

2.已验证的控件(如文本框下拉列表框等。)必须由Html辅助方法生成才能有效。

在服务器端,判断模型是否通过验证(服务器端验证)

如果页面中使用了MVC验证功能,必须通过ModelState判断是否通过了服务器端验证。在后台相应的操作中无效。只有通过服务器端验证后,才能执行其他业务逻辑代码

使用点数:

验证的标签不能是纯html,必须使用相应的html辅助方法

例如: html . textbox for(model=model . username),验证有效;

输入type=" text " id=" username " name=" username "/,验证无效;

验证消息(Html。ValidationMessage)必须使用相应的html辅助方法显示。已验证的控件必须放在带有html.beginform的辅助方法中(它不能是纯表单标记)。客户端验证不安全,容易被禁用或欺骗,因此需要判断ModelState是否存在。IsValid在服务器端为真。

操作和视图之间的数据传输

在某些情况下,view需要显示多条数据(如修改后的员工信息岗位列表部门列表),但当Action返回视图时,View()方法只能传递一种对象类型的数据,那么如何传递其他数据呢?

ASP。NET MVC为我们提供了三种方案:ViewDataTempDataViewBag。

重要提示:控制器和视图都有这三个属性。在Controller的相应属性中存储数据后,可以从View的相应属性中提取这些数据。

可视数据

视图数据是一种字典类型。向其中添加数据时,应该以键值对的形式添加。

首先添加到活动视图数据,然后访问视图中的视图数据以提取数据。

视图包

视图包是一个动态类型的属性。在ASP.NET,视图包属性被添加到MVC 3.0中。

动态类型:dynamic意味着您可以随时向其添加新属性,方法是直接为属性赋值,而无需事先定义属性。

下面的代码演示了在视图包中存储cls和stu对象,它们分别放在属性ClassInfo和StudentInfo中。

临时数据

TempData的用法与ViewData相似,都是字典类型。它们之间有什么区别?

存储在ViewData中的数据只对本次访问的当前动作有效,而存储在TempData中的数据对本次访问除本次访问的当前动作之外的其他动作有效(例如,数据存储在Action1中的TempData中,即使从Action1跳转到Action2后,仍然可以从Action2中的TempData中提取数据。视图数据和视图包都不能做到这一点。)因此,TempData中数据的生命周期比ViewData|ViewBag中数据的生命周期要长。

动作结果的实现类

在ASP.NET MVC模型中,Action用于响应用户的各种请求,比如将html文档、html片段、json数据、纯文本、文件等结果返回给客户端。在ASP.NET MVC中,上述结果可以通过在Action(行为或操作)方法中返回ActionResult类型的对象来响应客户端。

ActionResult类是一个抽象类(抽象类不能直接实例化)。

ActionResult有很多实现类,不同的实现类用来响应客户端的不同结果。并且在Controller类中提供了大量的辅助方法,可以快速创建各种ActionResult。

在实际开发中,我们更倾向于使用Controller类中的辅助方法,而不是自己创建ActionResult的实现类。

视图结果类

视图结果类的作用是向客户端响应视图目录中的视图文件。

控制器类中提供了View()方法来快速返回ViewResult类对象。

ContentResult类

此类用于返回一段文本内容(纯文本HTML.)给客户。

控制器类中的辅助方法是: Controller . content(string content);

RedirectToRouteResult类

这个类的功能是从当前动作跳转到其他动作。

控制器类中的辅助方法是:rredicttoaction(“操作名”、“控制器名”)

RedirectResult类

从当前操作跳转到服务器端的其他网址。

控制器类中的辅助方法是:controller。重定向(字符串)

JsonResult类

这个类用于向客户端返回一个Json格式的字符串。

Controller类中的辅助方法是: Controller . JSON(object data);

注意:默认情况下,mvc拒绝响应get发送的ajax请求,需要使用JsonRequestBehavior.AllowGet。

PartialViewResult类

此类的功能是向客户端响应视图目录中的部分视图文件。部分视图是只包含html片段的视图文件。

控制器类中的辅助方法是:Controller。partial view();

下图显示了在创建视图文件时如何创建局部视图文件(选中“创建为局部视图”复选框):

文件路径结果类

这个类用于下载文件。

Controller类中的assistant方法是:controller.file(字符串文件路径、字符串内容类型、字符串文件名);

文件内容结果类

将内存中的字节数组作为文件数据直接输出到客户端。适用于在内存中动态生成文件或将小文件加载到字节数组中输出。

文件流结果类

此方法将所有文件读入服务器内存,缓冲它们,然后将它们发送给客户端。这样做会消耗大量服务器内存,因此您应该避免使用此方法发送大文件。

EmptyResult类

此类用于向客户端响应空结果。

HttpStatusCodeResult类

此类用于相应地为客户端分配状态代码。

HttpNotFoundResult类是HttpStatusCodeResult的子类,表示状态代码404。

以下是一些常用的http状态代码:

404:找不到资源(表示客户端请求服务器的资源地址不存在)

500:服务器内部错误(以5XX开头的错误表示服务器在处理过程中出现错误)

200:成功(表示客户端发送的请求已被服务器成功处理和响应)

其他的

如何在aspx页面中导入命名空间?

方法1:将%@导入命名空间=“命名空间”%添加到指定页面

方法2:添加页面-名称空间-在项目的web.config配置文件中添加add

注意:通过方式2添加的名称空间可以在所有aspx页面中使用;在模式一中添加的命名空间只能在当前页面中使用。

更多资讯
游戏推荐
更多+