随笔分类 - ASP.NET MVC
摘要:引子在了解MVC路由之前,必须了解的概念是"片段"。片段是指除主机名和查询字符串以外的、以"/"分隔的各个部分。比如,在http://site.com/Home/Index中,包含2个片段,第一个片段是Home,第二个片段是Index。URL匹配的特点:● 保守的:URL中的片段数量必须和路由规则中...
阅读全文
摘要:在asp.net中要不使用其他插件的情况下只能使用定时器来检查, 并执行任务.以下讲解步骤:1. 在Global.asax 文件中作如下修改1234567891011voidApplication_Start(objectsender, EventArgs e) {// 在应用程序启动时运行的代码//定义定时器//1000表示1秒的意思System.Timers.Timer myTimer = newSystem.Timers.Timer(1000);//TaskAction.SetContent 表示要调用的方法myTimer.Elapsed += newSystem.Timers.Elap
阅读全文
摘要:为什么使用母版页?为了整个站点样式统一,任何WEB应用程序都应该使用母版页。MVC框架中,有新的方式为母版页传递数据。 一个WEB应用程序可以包含多个母版页,母版页用于定义页面布局,它与普通页面的最大区别是多了标签,用于为子页面内容占位。当你创建视图内容页面(即普通页面)时,可以选择使用哪个母版页。内容页面中会添加标签来对应母版页中的。在内容页面中,并不抱括或者这些标签。你必须把想要显示的内容放在标签的范围内,否则预览页面时会报错。但是你并不用把所有都用掉。[1]修改内容页面当你使用母版页时,默认会使用母版页的页面标题,如果想要自定义标题的话有两种方式:(1)使用在页面源文件顶部的 标签,如(
阅读全文
摘要:一、系统过滤器使用说明 1、OutputCache过滤器OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数。它有以下属性: Duration:缓存的时间,以秒为单位,理论上缓存时间可以很长,但实际上当系统资源紧张时,缓存空间还是会被系统收回。 VaryByParam:以哪个字段为标识来缓存数据,比如当“ID”字段变化时,需要改变缓存(仍可保留原来的缓存),那么应该设VaryByParam为"ID"。这里你可以设置以下几个值:* = 任何参数变化时,都改变缓存。none = 不改变缓存。 以分号“;”为间隔的字段名列表 = 列表中的字段发
阅读全文
摘要:ASP.NET MVC3中的Model是自验证的,这是通过.NET4的System.ComponentModel.DataAnnotations命名空间完成的。 我们要做的只是给Model类的各属性加上对应的验证标记(Attributes)就可以让MVC3框架帮我们完成验证。我以MVC3项目模板自带的登录 做例子讲解Model的验证。一、启用客户端验证:客户端验证主要是为了提高用户体验,在网页不回刷的情况下完成验证。第一步是要在web.config里启用客户端验证,这在MVC3自带的模板项目中已经有了:然后在被验证的View页面上要加入这样两个JavaScript,注意,他们是依赖于JQuer
阅读全文
摘要:第一种,单行数据var result = new { name = "linfei", age = "26", address = "wuhan" };//MVC中返回return Json(result);//asp.net中返回System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();return js.Serialize(result);显示结果:{ &q
阅读全文
摘要:Select/Distinct操作符适用场景: 查询。说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结果返回回来;延迟。Select/Distinct操作包括9种形式,分别为简单用法、匿名类型形式、条件形式、指定类型形式、筛选形式、整形类型形式、嵌套类型形式、本地方法调用形式、Distinct形式。1.简单用法:这个示例返回仅含客户联系人姓名的序列。var q = from c in db.Customers select c.ContactName;注意:这个语句只是一个声明或者一个描述,并没有真正...
阅读全文
摘要:一般WEB项目都会不同的页面区域,如:用户前台、用户后台、管理员后台。访问的URL:用户前台:www.domain.com/home/index用户后台:www.domain.com/admin/home/index管理员后台:www.domain.com/manager/home/indexasp.net mvc 2/3 提供了Areas功能来实现1.打开新建项找到Areas,分别添加admin,manager,添加好后项目结构类似下面Areas下有各自独立的Controllers,Models,Views。此外还多了个文件AreaRegistration为后缀的.cs文件. 这个文件主要的
阅读全文
摘要:在MVC3网站的global.asax中的Application_Start方法里,有这样一段代码 1 RegisterGlobalFilters(GlobalFilters.Filters);它的主要使用是将全局过滤器进行注册,而全局过滤器可以在RegisterGlobalFilters这个方法里进行设置,如代码: 1 /// <summary> 2 /// 全局过滤器(特性) 3 /// </summary> 4 /// <param name="filters"></param> 5 public static v...
阅读全文
摘要:网页的头部压缩在页面体积大的情况下非常有必要做,它会使页面体积有一个明显的减小,同时加到网页从服务端下载到客户端的速度,以下是我做的一个测试:没有使用头压缩时:使用了头压缩后:我们可以看到,网页的体积足足减少了6KB,这对于远程传输来说是很重要的,同时,页面下载到客户端的速度也由825MS提升到了753MS,可以说是一次不小的飞跃!呵呵!在MVC环境中,是如何实现的呢,如果不是全局的,可以建立一个过滤器(特殊),然后应用到action或者controller上就可以了,我们以这种方式为例,我来共享一下代码:/// <summary> /// 页面头压缩 /// </summa
阅读全文
摘要:缓存(cache)1.缓存是一种以空间换时间的技术, 比如, cpU的二级缓存,Windows的文件缓存。2.减少服务器的负荷,默认存放在内存里面,不过是可以修改的。3.缓存存在失效的情况。Asp.net 缓存主要分为页面缓存,数据源缓存,数据缓存。4. 页面缓存: %@OutPutCache Duration="15" VaryByParam="none" %属性说明:VaryByParam:是指页面根据使用POST或GET发送的名称/值对(参数)来更新缓存的内容,多个参数用分号隔开。如果不希望根据任何参数来改变缓存内容,请将值设置为none。如果希望
阅读全文
摘要:看了一下的访问两比较大,现在js和css的合并压缩整理一下。首先还是需要一个handler来处理文件的合并、压缩、缓存.js和css的压缩我们采用的是Yahoo.Yui.Compressor,所以需要引用Yahoo.Yui.Compressor.dll文件代码如下: public class CombineFiles : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/javascri...
阅读全文
摘要:为什么需要分离?我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等。但是在实际的开发中,随着项目规模的不断扩大,Controller控制器也随之不断增多。如果在Controllers文件夹下面有超过两位数controller,即便采用良好的命名规范,或者用子文件夹的形式区分不同功能的控制器,还是会影响项目的可阅读性和可维护性。因此,在一些场景下,如果能把与某功能相关的文件分离到一个独立的项目中是非常有用的。Asp.Net MVC提供了Areas(区域)的概念达到这一目的。例如
阅读全文
摘要:前言:前几天要准备一个演讲,所以准备了MVC的一些基本的东西,以前也使用过MVC,但是只是使用,而不是去了解,所以趁着这个机会好好的把别人的MVC视频看了一下(是一个微软的MVP会员发布的视频,相信有些人都看过),整理除了这个笔记,共享一下子,基本MVC的所有东西都介绍了,但是都是很基础的东西。本来打算一篇发表完的,但是发现东西有点多,所以分成了两篇博客! 什么是ASP.NET MVC (1) ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架 (2)MVC是微软继ASP.NET WebForms后的有一种开发方式,并非替代方式! (3...
阅读全文
摘要:前言在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.NetMVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了。在Asp.net Mvc中当你有以下及类似以下需求时你可以使用Filter功能判断登录与否或用户权限决策输出缓存防盗链防蜘蛛本地化与国际化设置实现动态Action第一节:知识储备Asp.NetMVC提供了以下几种默认的Filter:FilterType实现接口执行时间De
阅读全文
摘要:在ASP.NET MVC 中获取当前URL、controller、action一、 URL的获取很简单,ASP.NET通用:【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数)string url=Request.Url.ToString();【2】获取 虚拟目录名+页面名+参数:string url=Request.RawUrl;(或 string url=Request.Url.PathAndQuery;)【3】获取 虚拟目录名+页面名:string url=HttpContext.Current.Request.Url.AbsolutePath;(或 string url=
阅读全文
摘要:最近因为工作需要制作了一个系统 Spring.NET1.3.2+NHibernate3.2+MVC3,后台以easyui作为框架界面,个人感觉还是不错的,所以打算制作一个专题将自己这段时间以来的技术进行一个总结!欢迎大家互相交流热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力。由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI。它有完整的demo和强大AIP手册,使我在开发过程中得心应手。项目框架介绍:Spring.NET-1.3.2NHibernate-3.2MVC-3.0后台框架 使用j...
阅读全文
摘要:静态化处理,可以大大提高客户的访问浏览速度,提高用户体验,同时也降低了服务器本身的压力。在asp.net mvc3中,可以相对容易地处理静态化问题,不用过多考虑静态网页的同步,生成等等问题。我提供这个方法很简单,就需要在需要静态化处理的Controller或Action上加一个Attribute就可以。下面是我写的一个生成静态文件的ActionFilterAttribute。 using System.IO; using System.Text; using System.Web; using System.Web.Mvc; using NLog; ...
阅读全文
摘要:_Layout.cshtml 主母版<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text
阅读全文
摘要:一,认识Global路由表 我们新建一个ASP.NET MVC Web程序的时候,会生成一个Global.asax文件。如下:using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using System.Web.Routing; 7 8 namespace JohnConnor.Web 9 {10 // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明,11 // 请访问 http://...
阅读全文