网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET MVC 3基础教程之Web Pages

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/06
e/201301/6/6C184920789.png" /> 

(不排除本人未能发现的其他文件类型,但目前据我所知道应用最广的就这三个)

在Web Pages 1.0下,除非你显式以”_”开头命名View.否则你在请求”_”开头的页面时会遇到以下无法服务的页面提示

498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' title="image" border="0" alt="image" src="/uploadfile/201301/6/90184920480.png" />

(这图在Razor语法基础时就帖过了.这里帖出来是让大家温故而知新)

关于*.cshtml生成的类名格式

绝大部分页生成的程序集格式

498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' title="image" border="0" alt="image" src="/uploadfile/201301/6/F7184920545.png" /> 

页面编译都是以单独页面编译为单个带随机字符串的程序集,当然也可以采用预编译方式将n个页编译为1个程序集

II:关于多目录下以”_”开头的特殊文件的执行顺序

_appstart.cshtml仅能存在于根目录(“~/”),

如果你在子目录下放置_appstart.cshtml文件的话.那么该文件就不会被App初始化时执行

当访问~/somepage.cshtml时.

会先执行~/_pageStart.cshtml

然后在执行 ~/somepage.cshtml

当在复杂的子目录环境下时:

~/_pageStart.cshtml

~/sub/_pageStart.cshtml

~/sub/somepage.cshtml

III:Web Pages 1.0脱离WebForms的启动原理

首先Web Pages利用特性往本身程序集上与ASP.NET挂钩

  1. // SourceFile: AssemblyInfo.cs(System.Web.WebPages.dll)  
  2. //AttributeClass: System.Web. PreApplicationStartMethodAttribute  
  3. //特性介绍:为ASP.NET 其他Provide提供扩展  
  4. //参数1: ASP.NET Provide的类型  
  5. //参数2:运行的方法名  
  6. //Source:  
  7. [assembly: PreApplicationStartMethod(typeof(System.Web.WebPages.PreApplicationStartCode), "Start")] //Line: 15 

然后我们在这里可以看到Web Pages的ASP.NET Provide是.Web.WebPages.PreApplicationStartCode

启动方法是Start

  1. public static void Start() {  
  2.     // Even though ASP.NET will only call each PreAppStart once, we sometimes internally call one   
  3.     // another PreAppStart to ensure that things get initialized in the right order. ASP.NET does   
  4.     // order so we have to guard against multiple calls.  
  5.     // All Start calls are made on same thread, so no lock needed here.  
  6.    
  7.     if (_startWasCalled) {  
  8.         return;  
  9.     }  
  10.     _startWasCalled = true//设置Start方法已被调用  
  11.    
  12.     WebPageHttpHandler.RegisterExtension("cshtml");//注册扩展  
  13.     WebPageHttpHandler.RegisterExtension("vbhtml");//注册扩展  
  14.    
  15.     // Turn off the string resource behavior which would not work in our simple base page  
  16.     PageParser.EnableLongStringsAsResources = false;//优化选项  
  17.    
  18.     DynamicModuleUtility.RegisterModule(typeof(WebPageHttpModule));//重点在这里了.~~注册了一个WebPageHttpModule  
  19.    
  20.     ScopeStorage.CurrentProvider = new AspNetRequestScopeStorageProvider();  
  21.     //ASP.NET Web Pages的RequestScopeStorageProvider  

IV:附录:Global执行顺序

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号