Asp.Net MVC4 + Oracle + EasyUI 学习 第一章
Asp.Net MVC4 + Oracle + EasyUI 第一章
--操作数据和验证
本文链接:http://www.cnblogs.com/likeli/p/4234238.html
文章集合:http://www.cnblogs.com/likeli/category/651581.html
1、 关于HtmlHelper和UrlHelper
因为大部分的web请求的目标都是向客户端发送HTML代码。因此,Asp.Net MVC也是为我们创建HTML提供了各种帮助。除了Razor,另外还有两个最为重要的帮助类就是HtmlHelper和UrlHelper,他们作为控制器和视图的Html和Url属性暴露出来,供我们使用。
这里列举一个帮助类的例子:
<img src="@Url.Content("~/Content/images/1.jpg")" />
@Html.ActionLink("HomePage","Index","Home")
该部分代码渲染之后为:
<img src="/Admin/content/images/1.jpg" />
<a href="/Admin/Home/Index">HomePage</a>
这两个帮助类只是扩展了框架的一些附加行为。关于他们的扩展方法太多,这里无法一一列举,但之后会用到。
强调一下:HtmlHelper帮我们生成HTML代码,UrlHelper帮我们生成URL地址,所以,只要记住,当我们需要生成HTML代码或URL的时候,就该使用他们了。
2、 简单登陆实战
网上down一个首页,如图:
图1
建立简单的模型、控制器,并生成视图。
图2
在创建视图的时候,不用EF生成,创建空白的视图即可。
public ActionResult Login()
{
return View();
} [HttpPost]
public ActionResult Login(LoginModel model)
{
if (ModelState.IsValid)
{
//简单验证通过
return RedirecToLocal("~/Admin/Home");
}
else
{
// 如果我们进行到这一步时某个地方出错,则重新显示表单
ModelState.AddModelError("", "提供的用户名或密码不正确");
return View(model);
}
}
以上代码为登陆控制器的代码。并做了简单的验证。验证通过后,跳转到指定页面。
通常设涉及到数据问题时,会有很多规则和限制可以使用,比如,字段非空,给字段设置范围区间等等。MVC中控制器可以通过操作ModelState来检查请求是否有效。
public class LoginModel
{
[Required]
[Display(Name = "用户名")]
[StringLength(, ErrorMessage = "必须至少包含{2}个字符", MinimumLength = )]
public string UserName { get; set; } [Required]
[Display(Name = "密码")]
public string UserPwd { get; set; } [Required]
[Display(Name = "记住我?")]
public bool RememberMe { get; set; }
}
关于上面的Required、Display、StringLength标记,这是为了对这个属性进行强化控制。
- 重点说明一下自定义错误信息。数据标记提供了ErrorMessage属性,可以指定返回给用户的错误信息。而不是由Data Annotations API生成的默认信息。就如上面代码中定义字符长度的方法一样。
定义好错误信息后,那么现在就是需要如何显示这个错误信息了。ViewData.ModelState["UserName"]可以读取到这个错误信息,但这是一个集合,我们需要用迭代循环来显示错误信息,那么就难免要在页面上书写循环来输出错误信息。但是,现在MVC提供能更好的方法来渲染特定属性的错误信息@Html.ValidationMessageFor(string modelName),这个方法让我们省去了循环的代码。如下,一句代码即可完成该效果:@Html.ValidationMessageFor(m => m.UserName)
- 这里再次提示一下,这里用的验证方法都是在服务端的代码验证,需要在服务器和客户端之间来来回回几次才能验证数据的有效性,那么聪明的你应该瞬间明白我要说什么了,那就是这种验证方式并不是一种节约带宽和服务器资源的好方法。但不可否认,这是一种有效的方法,可以很好的保证数据的有效性、安全性。选择性的使用即可,之后的文章里会优化验证方法,来避免不必要的请求,节约带宽和服务器资源。
视图中,我们需要用到HtmlHelper和UrlHelper来生成Url和HTML标记。
@using (Html.BeginForm())
{
<div class="loginbox">
<ul>
<li>
@Html.TextBoxFor(m => m.UserName, new { @class = "loginuser", @placeholder = "请输入用户名" })
@Html.ValidationMessageFor(m => m.UserName)
</li>
<li>
@Html.TextBoxFor(m => m.UserPwd, new { @class = "loginpwd", @placeholder = "请输入密码" })
@Html.ValidationMessageFor(m => m.UserPwd)
</li>
<li>
<input type="submit" class="loginbtn" name="slogin" value="登陆" />
<label>
@Html.CheckBoxFor(m => m.RememberMe, new { @checked = "checked"})记住密码
</label>
<label>
<a href="javascript:;">忘记密码?</a>
</label>
</li>
</ul>
</div>
}
上文的代码中,可以看到利用HtmlHelper来生成了几个文本框、复选框等,HtmlHelper的扩展有许多,可以前往MSDN查看详情。
这里若是想要给生成的标签加上属性或者样式,可以使用new{@属性=“值”}的方式来添加。
3、 参考文献
《Asp.Net MVC4 Web编程》、MSDN
4、 相关下载
源代码:http://download.csdn.net/detail/a406502972/8376701
5、 后记
本文是一个漫长的过程,因为是自己在学习,所以我会精细到我所遇到的每一个问题,每一个细节,所以,写博文比较慢。
也特别希望,各位博友在阅读过程中,多多提点,一方面细化的我学习理解,也强化一下我的文档书写能力。
真诚希望我能从小菜进化到小牛再到大牛。希望阅读的博友们也能从我的学习过程中获得进步!
Asp.Net MVC4 + Oracle + EasyUI 学习 第一章的更多相关文章
- Asp.Net MVC4 + Oracle + EasyUI 学习 序章
Asp.Net MVC4 + Oracle + EasyUI 序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1. 简 ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第二章
Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...
- Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 1
Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 序章 Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 序章 -- 新建微软实 ...
- Asp.Net MVC4 + Oracle + EasyUI + Bootstrap
Asp.Net MVC4 + Oracle + EasyUI + Bootstrap --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.ht ...
- sp.Net MVC4 + Oracle + EasyUI + Bootstrap2
Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第二章 Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 第二章 --使用 ...
- oracle学习 第一章 简单的查询语句 ——03
1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结 我们从第一节搭建框架开始直到二十七节,权限管理已经告一段落,相信很多有跟上来的园友,已经 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)
转自:http://www.cnblogs.com/ymnets/p/3424309.html 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客.博客园园龄都1年了,却一直都是空空 ...
随机推荐
- ionic+angularjs开发hybrid App(环境配置+创建测试项目)
本文使用的系统是win10 因为后期需要使用nodejs 所以先把node装好 https://nodejs.org/download/ 下载JDK并配置Java运行环境 http://www.ora ...
- css-css权威指南学习笔记4
第三章 1.继承的值没有特殊性,甚至连0的特殊性都没有.所以改变超链接的样式一般需要独立声明,无法通过继承改变. 2.层叠--冲突的声明通过这个层叠的过程排序,并由此确定最终的文档表示.这个过程的核心 ...
- html5离线应用和缓存
1 localstorage和sessionstorage sessionStrage: session即会话的意思,在这里的session是指用户浏览某个网站时,从进入网站到关闭网站这个时间段,se ...
- /etc/fstab 文件配置项简单介绍
Untitled .note-content {font-family: 'Helvetica Neue', Arial, 'Hiragino Sans GB', STHeiti, 'Microsof ...
- zabbix监控单核cpu使用率和多核cpu总负载
zabbix自带的基础监控的模板中只有对单核cpu负载1分钟.5分钟.15分钟的监控. 添加对总的cpu负载的监控 key:system.cpu.load[all,avg1] 1分钟cpu总的负载 添 ...
- sublime2使用jshint
合理配置Jshint可以帮助写出高质量的代码,通过sublime2插件 JSHint Gutter 可以迅速提供开发效率和减少bug的个数. 1.安装JSHint Gutter插件 sublime2按 ...
- [Nhibernate]sqlite数据库基本使用
目录 写在前面 操作步骤 总结 写在前面 昨天有朋友问我在nhibernate中如何使用sqlite数据库,当时实在忙的不可开交,下周要去山西出差,实在没空,按我的说法使用sqlite跟使用sqlse ...
- 清北学堂模拟赛day7 数字碰撞
/* clj:水题别人都满分你不是你就完了,所以说水题一定要细心一点,有这么几个细节:①前导零的处理,全是零的时候要特判②换行要注意,不要多大一行,剩下就是水水的模拟了 */ #include< ...
- Linux进程间通信(四):命名管道 mkfifo()、open()、read()、close()
在前一篇文章—— Linux进程间通信 -- 使用匿名管道 中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关 ...
- js前端实现模糊查询
对于模糊查询,一般都是传关键字给后端,由后端来做.但是有时候一些轻量级的列表前端来做可以减少ajax请求,在一定程度上提高用户体验.废话不多说,直接上代码. //字符串方法indexOfvar len ...