ASP.NET MVC(4)
2015-10-13 09:23
543 查看
1.MVC验证,MVC3自带的验证有
.NET 框架中的System.ComponentModel.DataAnnotations命名空间包括了众多可为你所用的内置验证特性,介绍用的最多的其中的四个:
[Required], [StringLength], [Range], 和 [RegularExpression]。
定义自己的定制验证特性,然后应用它们。你可以通过继承自
System.ComponentModel.DataAnnotations命名空间中 的ValidationAttribute基类,定义完全定制的特性。
服务器端校验只需要在Action中校验:ModelState.IsValid属性即可。true就是校验通过,false反之不通过。
要使用客户端验证,必须引入JS脚本支持(jq的校验)
添加语句
<% Html.EnableClientValidation(); %> (MVC3 、4 中默认开启)
WebConfig,全局配置ClientValidationEnabled,设置为true
2.MVC自带的ajax,先引用jquery和视图ajax,参数参考具体文档
3.过滤器
微软提供的默认的4种过滤器
Authorizazation
Action filter
Result filter
Exception filter
在验证和动作、视图、异常,当出现某种情况时,就执行该段代码
4.异常过滤器
5.MVC区域功能
Asp.Net MVC提供了区域的功能,可以很方便的为大型的网站划分区域。
可以让我们的项目不至于太复杂而导致管理混乱,有了区域后,每个模块的页面都放入相应的区域内进行管理很方便。
在项目上右击创建新的区域
区域的功能类似一个小的MVC项目,麻雀虽小五脏俱全,有自己的控制器、模型、视图、路由设置
区域的路由设置是最优先的
6.局部视图和局部渲染
7.MVC模板页
.NET 框架中的System.ComponentModel.DataAnnotations命名空间包括了众多可为你所用的内置验证特性,介绍用的最多的其中的四个:
[Required], [StringLength], [Range], 和 [RegularExpression]。
定义自己的定制验证特性,然后应用它们。你可以通过继承自
System.ComponentModel.DataAnnotations命名空间中 的ValidationAttribute基类,定义完全定制的特性。
服务器端校验只需要在Action中校验:ModelState.IsValid属性即可。true就是校验通过,false反之不通过。
要使用客户端验证,必须引入JS脚本支持(jq的校验)
添加语句
<% Html.EnableClientValidation(); %> (MVC3 、4 中默认开启)
@{ Html.EnableClientValidation(false); }
WebConfig,全局配置ClientValidationEnabled,设置为true
<add key="ClientValidationEnabled" value="true" />
2.MVC自带的ajax,先引用jquery和视图ajax,参数参考具体文档
@using (Ajax.BeginForm("GetData", "Ajax", new AjaxOptions() { Confirm = "你是否要提交吗", HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "id1", OnSuccess = "successFunction", LoadingElementId = "loading" })) { <div> 用户名<input type="text" name="username" /> 密码<input type="password" name="pwd" /> <input type="submit" value="提交" /> </div> <div id="id1"></div> <div id="loading"></div> }
3.过滤器
微软提供的默认的4种过滤器
Authorizazation
Action filter
Result filter
Exception filter
在验证和动作、视图、异常,当出现某种情况时,就执行该段代码
public class MyActionFilterAttribute : ActionFilterAttribute { public string Name { get; set; } public override void OnActionExecuted(ActionExecutedContext filterContext) { base.OnActionExecuted(filterContext); HttpContext.Current.Response.Write("<br/>" + Name); } } 可以用过滤器做Session验证,要执行过滤器,只要在控制器或Action上打上标签,对应的Action请求时就 先执行过滤器,如果打在控制器上,里面所有的action都不需要在标志 [MyActionFilter(Name="home index")] public ActionResult Index() { ViewData["key"] = DateTime.Now; return View(); }如果让所有的都要执行,只需在
FilterConfig.cs中注册一个就行,优先级最低 public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new MyActionFilterAttribute() { Name = "global" }); }在控制器上加上
[AttributeUsage(AttributeTargets.All,AllowMultiple=true)]可以使一个Action执行多个过滤器
4.异常过滤器
public class MyExceptionAttribute : HandleErrorAttribute { public override void OnException(ExceptionContext filterContext) { base.OnException(filterContext); //当出现错误的时候 //1.记录日记 //2.页面跳转到错误或者 //3.多个线程同时访问一个日志,考虑使用内存队列,为了考虑性能,引入分布式队列Redis //4.加入观察者模式,可以写到不同地方,应对不同变化,引入设计模式,写入不同变化点 //5.log4net HttpContext.Current.Response.Redirect("/home/index"); } } 在Filter.cs中配置自己的过滤器filters.Add(new MyExceptionAttribute());
5.MVC区域功能
Asp.Net MVC提供了区域的功能,可以很方便的为大型的网站划分区域。
可以让我们的项目不至于太复杂而导致管理混乱,有了区域后,每个模块的页面都放入相应的区域内进行管理很方便。
在项目上右击创建新的区域
区域的功能类似一个小的MVC项目,麻雀虽小五脏俱全,有自己的控制器、模型、视图、路由设置
区域的路由设置是最优先的
6.局部视图和局部渲染
@{Html.RenderPartial("MVCAjax"); Html.RenderAction(""); } 页面上做一个嵌套使用html就用frameset和iframe,下载可以用Html.RenderPartial,在webform内使用用 户控件
7.MVC模板页
相关文章推荐
- ASP.NET MVC与WebForm对比
- ASP.NET连接数据库配置文件
- ARM assembler in Raspberry Pi – Chapter 3
- ARM assembler in Raspberry Pi – Chapter 1
- ASP.NET购物车实现过程详解
- ASP.NET书籍信息录入实现代码
- ASP.NET MVC的四种验证编程方式
- asp.net5中的用户认证与授权(1)
- asp.net5中用户认证与授权(2)
- ASP.NET的实用技巧详细介绍
- ASP和SQL Server如何构建网页防火墙
- ASP.NET动态网站制作(10)-- JQ(2)
- Casperjs的高级应用之start(),create()
- ASP.NET Razor - 标记
- asp.net mvc Ajax.BeginForm不能异步刷新,或转到新页面,或页面还是刷新了,的原因(或解决办法)(转)
- spring的Aspect使用例子:
- 1、ASP.NET MVC入门到精通——新语法
- asp.net读取数据库到文本框,修改再更新到数据库
- 发布以NLog作为日记工具的ASP.NET站点到IIS注意事项
- 系统学习asp.net Ajax中GridView、UpdatePanel、UpdateProgress、Timer使用