MVC3中的视图文件

  在MVC3中的视图部分,Razor视图引擎是与以往不同的地方之一,使用Razor的视图文件再也不是以往的ASPX文件了,是cshtml文件,在新建视图的时候也会发现增加多了几类文件

由上到下分别是

  •          MVC 3 Layout Page:与原来Web Form的Master母版页一样。文件名一般以下划线“_”开头
  •          MVC 3 Partial Page:用于定义用户控件的。文件名一般以下划线“_”开头。
  •          MVC 3 View Page:普通的View页面。
  •          MVC 3 View Page with Layout:使用某个Layout页面的View,与原本WebForm中使用母版页的页面一样。

上面两项文件的文件名默认是以下划线开头的“_”,不过在MVC 3中有几个带有下划线开头的文件比较特殊

  • _AppStart.cshtml
  • _PageStart.cshtml
  • _ViewStart.cshtml

  这几个文件在整个请求响应流程中发挥着一些特殊的效果。这些文件都不能够被请求(即使控制器的行为定义好了、路由也定义好了,都不行),但行为定义好的路由定义好而不能访问的页面也不知这几个,作为Layout的页面里万一用了@RenderBody()就不允许被请求了。当然感觉这样做钻牛角尖了。

分别看一下上面几个特殊的文件的介绍

 

_AppStart.cshtml

执行时机:在程序启动的时候执行,但晚于全局文件Global.asax里面的Application_Start事件执行。

作用:用于进行App的初始化时,需要进行处理的内容,但是由于其所处于的作用域跟Application_Start所处的不同。所以它能作出一些Application_Start做不出的事。

注意:此文件一定要位于根目录才会生效,否则不会执行。

这里就列举一下

_AppStart.cshtml

@{this.App.StartMessage = "测试_AppStart.cshtml";
}
<br />@("applicationstart")

 

TestPage.cshtml

@{ViewBag.Title = "123ABCD";if(!string.IsNullOrEmpty( App.StartMessage)){    Response.Write(App.StartMessage);}}

这里的App属于动态属性,VS的自动提示不起作用,要想知道是什么就只能上官网了,ViewBag都是这样。

同时从结果都可以看出@("applicationstart")并没有执行,只是执行了@{}这部分。

 

_ViewStart.cshtml

执行时机:单个View处理Request时执行,晚于_AppStart.cshtml执行

作用:与Web Form中的Page_Load类似,不过Web Form的Page_Load只能作用于一个页面,这个_ViewStart.cshtml能作用于它所在的目录及子目录中所有视图。如果子目录中也有_ViewStart.cshtml的话,先从最顶级的执行,才逐级执行到子级里头。不过如果行为方法返回的不是View(),而是PartialView()的话,这个_ViewStart就不会执行了。

 

下面也给一个例子,多个_ViewStart一齐使用的

 

文件结构如下

外面的_viewStart.cshtml的代码只是一行就够了

<br/> @("ViewStart.cshtml")

System目录下的_viewStart.cshtml的代码也只有一行

<br/>@("SystemViewStart")

运行结果如下

 

_PageStart.cshtml

传闻这个是跟_ViewStart.cshtml一样效果

这个文件呢!我没法作介绍了,因为我用Visual Studio2010的,在这个环境下建了文件没有执行,一直在苦恼中,在谷歌上找,有不少说明的,都说_AppStart.cshtml执行完毕之后就会执行_PageStart.cshtml,但无论怎样就是不执行,就算是按照别人的例子放置文件,粘别人的代码还是不行。后来看了一些鸡肠文章,好像_PageStart.cshtml不是在VS用的,在WebMatrix下面用的,看了一篇文章是说由WebMatrix转到VS的,那堆文件中,转换前是_PageStart.cshtml,转换后是_ViewStart.cshtml。

 

最后综合一下,如果_AppStart.cshtml,_PageStart.cshtml,_ViewStart.cshtml该在的都在的话,一个请求过来,服务器的处理如下

 

由于个人认识尚浅,故上面有什么说错的说漏的还请各位指出,谢谢!

转载于:https://www.cnblogs.com/HopeGi/archive/2013/05/31/3111513.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 链表拼接 PTA,PTA实验 链表拼接 (20point(s))

本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下&#xff1a;struct ListNode {int data;struct ListNode *next;};函数接口定义&#xff1a;struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);其中list1和list2是用户传入的两个按…

【TensorFlow学习笔记:神经网络优化(6讲)】

目录【1】NN复杂度【2】指数衰减学习率【3】激活函数优秀激活函数所具有的特点常见的激活函数对于初学者的建议【4】损失函数【5】缓解过拟合——正则化【6】参数优化器【1】SGD【2】SGDM(SGD基础上增加了一阶动量)【3】Adagrade(SGD基础上增加了二阶动量)【4】RMSProp(SGD基础…

第十章 开箱即用

第十章 开箱即用 “开箱即用”&#xff08;batteries included&#xff09;最初是由Frank Stajano提出的&#xff0c;指的是Python丰富的标准库。 模块 使用import将函数从外部模块导入到程序中。 import math math.sin(0)#结果为&#xff1a;0.0模块就是程序 在文件夹中创…

Openmv通过串口接收数据、发送数据与stm32通信

博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。 目录 参考接线星瞳教程openmv传送数据STM32解码程序参考 接线 星瞳教程

c语言尹宝林答案,c程序设计导引 尹宝林

《C程序设计导引》特别适合作为计算机和非计算机专业学生学习高级语言程序设计的教材&#xff0c;也可供计算机等级考试者和其他各类学习者使用参考。17.40定价&#xff1a;44.75(3.89折)/2013-05-01《大学计算机优秀教材系列&#xff1a;C程序设计导引》是一本讲解C程序设计的…

第十一章 文件

第十一章 文件 打开文件 当前目录中有一个名为beyond.txt的文本文件&#xff0c;打开该文件 调用open时&#xff0c;原本可以不指定模式&#xff0c;因为其默认值就是’r’。 import io f open(beyond.txt)文件模式 值描述‘r’读取模式&#xff08;默认值&#xff09;‘w…

【TensorFlow学习笔记:神经网络八股】(实现MNIST数据集手写数字识别分类以及FASHION数据集衣裤识别分类)

课程来源&#xff1a;人工智能实践:Tensorflow笔记2 文章目录前言一、搭建网络八股sequential1.函数介绍2.6步法实现鸢尾花分类二、搭建网络八股class1.创建自己的神经网络模板&#xff1a;2.调用自己创建的model对象三、MNIST数据集1.用sequential搭建网络实现手写数字识别2.用…

第十二章 图形用户界面

第十二章 图形用户界面 GUI就是包含按钮、文本框等控件的窗口 Tkinter是事实上的Python标准GUI工具包 创建GUI示例应用程序 初探 导入tkinter import tkinter as tk也可导入这个模块的所有内容 from tkinter import *要创建GUI&#xff0c;可创建一个将充当主窗口的顶级组…

Sqlserver 2005 配置 数据库镜像:数据库镜像期间可能出现的故障:镜像超时机制

数据库镜像期间可能出现的故障 SQL Server 2005其他版本更新日期&#xff1a; 2006 年 7 月 17 日 物理故障、操作系统故障或 SQL Server 故障都可能导致数据库镜像会话失败。数据库镜像不会定期检查 Sqlservr.exe 所依赖的组件来验证组件是在正常运行还是已出现故障。但对于某…

【神经网络八股扩展】:自制数据集

课程来源&#xff1a;人工智能实践:Tensorflow笔记2 文章目录前言1、文件一览2、将load_data()函数替换掉2、调用generateds函数4、效果总结前言 本讲目标:自制数据集&#xff0c;解决本领域应用 将我们手中的图片和标签信息制作为可以直接导入的npy文件。 1、文件一览 首先看…

c语言输出11258循环,c/c++内存机制(一)(转)

一&#xff1a;C语言中的内存机制在C语言中&#xff0c;内存主要分为如下5个存储区&#xff1a;(1)栈(Stack)&#xff1a;位于函数内的局部变量(包括函数实参)&#xff0c;由编译器负责分配释放&#xff0c;函数结束&#xff0c;栈变量失效。(2)堆(Heap)&#xff1a;由程序员用…

【神经网络八股扩展】:数据增强

课程来源&#xff1a;人工智能实践:Tensorflow笔记2 文章目录前言TensorFlow2数据增强函数数据增强网络八股代码&#xff1a;总结前言 本讲目标:数据增强&#xff0c;增大数据量 关于我们为何要使用数据增强以及常用的几种数据增强的手法&#xff0c;可以看看下面的文章&#…

分享WCF聊天程序--WCFChat

无意中在一个国外的站点下到了一个利用WCF实现聊天的程序&#xff0c;作者是&#xff1a;Nikola Paljetak。研究了一下&#xff0c;自己做了测试和部分修改&#xff0c;感觉还不错&#xff0c;分享给大家。先来看下运行效果&#xff1a;开启服务&#xff1a;客户端程序&#xf…

【神经网络扩展】:断点续训和参数提取

课程来源&#xff1a;人工智能实践:Tensorflow笔记2 文章目录前言断点续训主要步骤参数提取主要步骤总结前言 本讲目标:断点续训&#xff0c;存取最优模型&#xff1b;保存可训练参数至文本 断点续训主要步骤 读取模型&#xff1a; 先定义出存放模型的路径和文件名&#xff0…

小米手环6NFC安装太空人表盘

以前看我室友峰哥、班长都有手环&#xff0c;一直想买个手环&#xff0c;不舍得&#xff0c;然后今年除夕的时候降价&#xff0c;一狠心&#xff0c;入手了&#xff0c;配上除夕的打年兽活动还有看春晚京东敲鼓领的红包和这几年攒下来的京东豆豆&#xff0c;原价279的小米手环6…

为什么两层3*3卷积核效果比1层5*5卷积核效果要好?

目录1、感受野2、2层3 * 3卷积与1层5 * 5卷积3、2层3 * 3卷积与1层5 * 5卷积的计算量比较4、2层3 * 3卷积与1层5 * 5卷积的非线性比较5、2层3 * 3卷积与1层5 * 5卷积的参数量比较1、感受野 感受野&#xff1a;卷积神经网络各输出特征像素点&#xff0c;在原始图片映射区域大小。…

算法正确性和复杂度分析

算法正确性——循环不变式 算法复杂度的计算 方法一 代换法 —局部代换 这里直接对n变量进行代换 —替换成对数或者指数的情形 n 2^m —整体代换 这里直接对递推项进行代换 —替换成内部递推下标的形式 T(2^n) S(n) 方法二 递归树法 —用实例说明 —分析每一层的内容 —除了…

第十五章 Python和Web

第十五章 Python和Web 本章讨论Python Web编程的一些方面。 三个重要的主题&#xff1a;屏幕抓取、CGI和mod_python。 屏幕抓取 屏幕抓取是通过程序下载网页并从中提取信息的过程。 下载数据并对其进行分析。 从Python Job Board&#xff08;http://python.org/jobs&#x…

【数据结构基础笔记】【图】

代码参考《妙趣横生的算法.C语言实现》 文章目录前言1、图的概念2、图的存储形式1、邻接矩阵&#xff1a;2、邻接表3、代码定义邻接表3、图的创建4、深度优先搜索DFS5、广度优先搜索BFS6、实例分析前言 本章总结&#xff1a;图的概念、图的存储形式、邻接表定义、图的创建、图…

如何蹭网

引言蹭网&#xff0c;在普通人的眼里&#xff0c;是一种很高深的技术活&#xff0c;总觉得肯定很难&#xff0c;肯定很难搞。还没开始学&#xff0c;就已经败给了自己的心里&#xff0c;其实&#xff0c;蹭网太过于简单。我可以毫不夸张的说&#xff0c;只要你会windows的基本操…