C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  框架:Asp.net MVC

Asp.net MVC学习笔记
摘要:一、简介 在Asp.net MVC实现的Comet推送的原理很简单。 服务器端:接收到服务器发送的AJAX请求,服务器端并不返回,而是将其Hold住,待到有东西要通知客户端时,才将这个请求返回。 客户端:请求异步Action,当接收到一个返回时,立即又再发送一个。 缺点:会长期占用一个Asp... 阅读全文
posted @ 2015-02-10 12:01 逆心 阅读(4233) 评论(1) 推荐(2) 编辑

摘要:一、路由 1、HttpApplication中的ASP.NET MVC .Net 3.5 引入了System.Web.Routing程序集,通过Url Routing的机制,可以实现将一个虚拟路径的请求映射到一个Action方法上。 在Asp.net MVC中,Route类指定Asp.net应用程序中针对虚拟路径请求的处理方式,可以为每种URL模式创建一个Route对象。Route类定义如下:public class Route : RouteBase 为了完成针对请求的路由工作,在Asp.net MVC中引入了称为路由表的数据结构来定义各种URL到实际处理程序之间的映射。在Asp.n... 阅读全文
posted @ 2014-02-14 13:45 逆心 阅读(3324) 评论(0) 推荐(2) 编辑

摘要:一、MVC部署后直接显示文件列表,路由未生效,效果如下: 处理方法为:Web.Config修改一下配置: //增加此节点 还有另外一种原因也会显示此错误,应用程序池设置错了,应将应用程序池设置为Asp.net v4.0 阅读全文
posted @ 2013-06-21 14:56 逆心 阅读(586) 评论(0) 推荐(0) 编辑

摘要:一、系统过滤器使用说明 1、OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数。它有以下属性: Duration:缓存的时间,以秒为单位,理论上缓存时间可以很长,但实际上当系统资源紧张时,缓存空间还是会被系统收回。 VaryByPa 阅读全文
posted @ 2013-05-21 12:30 逆心 阅读(11963) 评论(4) 推荐(6) 编辑

摘要:一、路由规则说明 先来看MVC中的默认路由的说明"{controller}/{action}/{id}", // URL with parameters 对于Url /Home/Index/1 匹配结果是: controller : "Home" action : "Index" Id : "1" 对于Url /a.b/c-d/e-f 匹配结果是: controller : "a.b" action : "c-d" Id : "e-f" 为了Asp.net 阅读全文
posted @ 2013-05-05 14:23 逆心 阅读(2563) 评论(1) 推荐(2) 编辑

摘要:在WebForm,获取提交表单的值一般都是Request.Form["Title"]这样的方式。在MVC中,提供了模型绑定机制。让后台获取表单或Url中的参数变得更加简单。一、基本模型绑定 你可以直接在参数中用字符串,整型变量,实体或者是List的方式获取表单提交的参数。 参数中的这些东西都是与表单中的Html控件的name属性一一对应的。 public ActionResult PersonAdd(int Id) { return View(); } 例如以上代码,它能够匹配Url中的Id参数。如以下两种方法Id都能够... 阅读全文
posted @ 2013-05-05 13:57 逆心 阅读(12980) 评论(6) 推荐(5) 编辑

摘要:前一篇说了MVC数据验证的例子,这次来详细说说各种各样的验证注解。System.ComponentModel.DataAnnotations一、基础特性 一、Required 必填选项,当提交的表单缺少该值就引发验证错误。 二、StringLength 指定允许的长度 指定... 阅读全文
posted @ 2013-05-04 22:28 逆心 阅读(35579) 评论(11) 推荐(22) 编辑

摘要:作废一、自定义Filter 自定义Filter需要继承ActionFilterAttribute抽象类,重写其中需要的方法,来看下ActionFilterAttribute类的方法签名。 //表示所有操作-筛选器特性的基类。 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)] public abstract class ActionFilterAttribute : FilterAttribute, IActio... 阅读全文
posted @ 2013-01-21 10:25 逆心 阅读(22817) 评论(1) 推荐(4) 编辑

摘要:一、Html.BeginForm 标签//视图代码@using (Html.BeginForm("search", "home", FormMethod.Get),new { target="_black",@class="form1" }){ }//生成的HTML代码 new里面的叫做htmlAttributes,能够设置本控件的HTML属性,至于class前面加个@是因为class在C#里是关键字。二、Html.TextBox 标签//视图代码@Html.TextBox("Age", &qu 阅读全文
posted @ 2013-01-08 14:21 逆心 阅读(5550) 评论(1) 推荐(0) 编辑

摘要:一、所有的Controller都继承自System.Web.Mvc.Controller 目前ASP.NET MVC3默认提供了多种ActionResult的实现,在System.Web.Mvc命名空间里。 其中ActionResult是一个抽象类,所有一下的Result都继承自它,因此如果一个Action的返回值是ActionResult的话,可以返回以下任意一种类型的值,但是如果限制死了返回值为以下任意一种Result,则只能够返回指定的类型的数据了。ContentResultEmptyResultFileResultHttpStatusCodeResultHttpNotFoundRe.. 阅读全文
posted @ 2013-01-07 23:21 逆心 阅读(9496) 评论(1) 推荐(1) 编辑

摘要:一、Razor基础 1、单行代码书写 @代码 2、多行代码书写 @{ //@加个大括号就可以在里面写C#代码了。 C#代码第一行 C#代码第二行 } 3、Razor模板引擎会自动判别代码块,但是当代码存在二义性的时候,可以用小括号澄清@{ string name = "张三"; }// @name你好 报错当前上下文中不存在名称"name你好"*@@(name)你好 再给一个例子,就是调用泛型方法的时候,尖括号会导致Razor转回标记,这个时候也可以用小括号澄清:@(Html.SomeMethod()) 对于邮件名而言... 阅读全文
posted @ 2013-01-07 12:56 逆心 阅读(1510) 评论(0) 推荐(0) 编辑

摘要:一、公共模板 1、@RenderBody() 在网站公用部分通过一个占位符@RenderBody()来为网站独立部分预留一个位置。然后私有页面顶部通过@{Layout="公用模板路径"}来引入公用模板,并在自身放到公用模板的位置。同时也可以设置ViewData或ViewBag设置网站标题,关键词... 阅读全文
posted @ 2013-01-07 11:07 逆心 阅读(17071) 评论(4) 推荐(4) 编辑

摘要:一、视图引入命名空间的设置 之前经常写这样的代码,而且每个页面都要写:@model IEnumerable 其实有一种很方便的方法,可以通过配置Views文件夹里的Web.config来简化代码。Views文件夹里的Web.config里面的这个地方。 ... 阅读全文
posted @ 2013-01-07 10:50 逆心 阅读(2164) 评论(1) 推荐(0) 编辑

摘要:一、区别与联系 ViewData 和 TempData 都可以传递弱类型数据,区别如下:TempData只在当前 Action 中有效,生命周期和 View 相同;保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。因此TempData 的数据至多只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除。 ViewData与ViewBag使用的是同一个数据源,因此数据一样,只.. 阅读全文
posted @ 2013-01-07 10:19 逆心 阅读(6145) 评论(3) 推荐(3) 编辑