我们都知道在ASP.NET MVC中自带了Razor View Engine,Razor十分的强大,可以满足我们绝大部分的需要.但是ASP.NET MVC的高度可扩展性,使我们可以使用自定义的View Engine,以满足我们自己的特殊需要. 首先,实现自定义的View Engine需要实现IViewEngine接口: public interface IViewEngine { //使用指定的控制器上下文查找指定的分部视图. ViewEngineResult FindPartialView(C…
ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettings> 2 <add key="LogInfoProvider" value="Cookie" />//登录信息保存方式 3 </appSettings> 但是这些配置都是单个字符串信息,在某些情况下,无法做到灵活配置. 针对这种情况,使用…
ViewData属性 ViewData属性是System.Web.Mvc.ControllerBase中的一个属性,它相当于一个数据字典.Controller中向该字典写入数据,ViewData[“Key”]=data;View中从该字典中获取数据 int data=ViewData[“Key”].从ViewData中获取到的数据是object类型,必须强制类型转换. // // 摘要: Gets or sets the dictionary for view data. // 返回结果: Th…
自定义配置信息的高级应用 通过上篇博文对简单的自定义配置信息的学习,使得更加灵活的控制系统配置信息.实际项目中,这种配置的灵活度往往无法满足项目的灵活度和扩展性. 比如,一个配置信息有三部分组成,而每部分中有包括一些配置信息.仅仅使用简单的自定义配置无法满足,因此,需要提供更多的自定义配置方法来灵活实现. 针对配置信息中包括配置列表和配置项的要求,主要使用.Net Framework中的以下两个类来实现: ConfigurationElement:配置文件中的一个配置项 Configuratio…
ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, <appSettings> <add key="LogInfoProvider" value="Cookie" />//登录信息保存方式 </appSettings> 但是这些配置都是单个字符串信息,在某些情况下,无法做到灵活配置. 针对这种情况,使用.Net Framework提供的自定义系统配置方式来进行改善.自定义…
ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public interface IActionFilter { void OnActionExecuting(ActionExecutingContext filterContext); void OnActionExecuted(ActionExec…
ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter AuthorizeAttribute 最先执行,在其他类型的filter和action方法前执行 Action IActionFilter ActionFilterAttribute 在action方法执行前和执行后执行 Result IResultFilter ActionFilterAttribut…
接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public interface IActionFilter { void OnActionExecuting(ActionExecutingContext filterContext); void OnActionExecuted(ActionExecutedContext filterContext); }…
ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“:”结尾.代码块中定义的变量可能会被同一个域中的其他块使用.比如,定义在视图顶部的变量可以被同一视图中的代码块和代码段访问. 3.         布局 Razor通过layouts保持网页外观布局的一致性.布局模板包含基本的标签,并可以指定渲染视图内容的位置.比如 基本布局文件(_Layout.cs…
还是这张图: 当ControllerFactory生成Controller实例后,这时就需要使用ActionInvoker来选择调用一个合适的Action执行.ASP.NET MVC提供的基类Controller已经实现了ActionInvoker的功能.但是我们可以实现自定义的ActionInvoker来替代框架中提供的ActionInvoker. 首先一个ActionInvoker需要实现IActionInvoker接口: public interface IActionInvoker {…