一.数据核实
数据验证步骤:在模型类中添加与验证相关的特征标签,在客户端导入与验证相关的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页面中使用;在模式一中添加的命名空间只能在当前页面中使用。