HTML5技术

【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6) - 三生石上(3)

字号+ 作者:H5之家 来源:H5之家 2016-12-27 13:00 我要评论( )

如果你查看页面源代码,会发现 Major 输入框的 input 标签上有相应的自定义属性 data-val-length-max=200 和 data-val-length ,而这些属性值正是来自于模型的数据注解。 控制器的服务器端验证 在启用 JavaScript

如果你查看页面源代码,会发现Major输入框的input标签上有相应的自定义属性data-val-length-max=200data-val-length,而这些属性值正是来自于模型的数据注解。

 

控制器的服务器端验证

在启用JavaScript的情况下,由于所有的错误输入在客户端就会被拦截,所以根本到达不了服务器,不过这并不表示恶意用户无法提交错误的输入,有很多种方法可以做到:

 

禁用JavaScript

不同浏览器禁用JavaScript的方法不同,在Chrome中,F12打开开发工具,然后找到设置对话框:

 

 

此时提交页面,你会看到和前面完全相同的页面,由于本地运行速度很快,你甚至可能没意识已经发起了一次HTTP POST请求,而显示错误提示的页面来自服务器,而不是客户端:

 

响应正文包含如下内容,其中错误信息是服务器端生成的:

NameName 字段是必需的。

 

 

此时再回过头来看下Students控制器中Create操作方法的定义:

[HttpPost] [ValidateAntiForgeryToken] )] Student student) { if (ModelState.IsValid) { db.Students.Add(student); db.SaveChanges(); ); } return View(student); }

 

 

如果验证失败,则不更新数据库,并返回带Student模型的视图。

 

模拟POST请求

有很多工具可以模拟POST,这里我们讲解如果使用Fiddler来模拟项服务器提交POST请求。

打开Fiddler,就开始自动监测所有的HTTP请求,这时我们刷新Create页面,并在JavaScript禁用的情况下,提交表单,这时会有两个请求:

 

首先选中左侧的第二个请求,右侧面板中选择Inspectors->WebForms,下面会显示三个窗格:

1.     QueryString:当前请求的URL查询字符串。

2.     BodyPOST请求的表单参数。

3.     第三部分:响应正文,我们可以看到服务器端返回的错误信息。

 

现在切换到Composer选项卡,我们可以在这里面模拟POST请求:

 

上面有一段提示信息:使用这个页面创建一个请求。你可以通过拖拽的方式从左侧会话列表中拷贝一个之前的请求。

 

这就方便多了,我们从左侧选中第二个请求并拖拽到本页面:

 

这时页面背景变成明显的绿色以作提示,拖拽结束:

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上

    【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上

    2016-12-23 17:00

  • 微信js框架第二篇(创建完整界面布局) - L-H

    微信js框架第二篇(创建完整界面布局) - L-H

    2016-12-22 15:05

  • ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 - 路过秋天

    ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    2016-11-20 16:00

  • 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证 - 微软一站式示

    在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    2016-11-20 15:00

网友点评
<