在MVC4中有App_Data文件夹,这个文件夹里可以放一些重要的数据,比如说数据库的mdf文件等等,这个文件夹非常安全,因为这个文件夹不允许被别人下载,不允许被浏览器访问。
App_Start文件夹存放着4个配置类,例如RouteConfig.cs,这个是配置路由规则的
Global.asax文件里有Application_Start(),这个方法是在网站第一次被访问的时候调用的。
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); //注册路由,在网站被请求的时候只注册一次 RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
在ASPX模块里我们使用的是<%%>,然而在Razor模版里面我们使用@符号。
在Razor模版里我们使用 @{},这里表示一个代码段,意思是在”{}”里面写C#代码,Razor模版引擎的强大之处在于,它会自动识别<>符号,认为“<>”代表html代码,用@符号输出
例如:
@{ string msg = "哈哈"; <input type="text" value="@msg" /> @msg
<text>你好</text> }
因为Razor视图引擎识别<>,但是我们就像在html页面上的代码段里(@{})输出 “你好”这个文字的话,有什么好的办法吗?可能你会想到使用标签 <span>你好</span>,假如我们要求不能使用标签的话呢,那么我们就要使用<text>你好</text>,这个是模版提供的原样文字的,不带标签。
相信很多童靴在面试中经常被问道MVC与三层区别,首页MVC是表现层的开发方式,跟三层没有关系,MVC就是一个表现层的设计模式,用来把UI(界面)和业务代码脱离开的一种开发方式。
在MVC里控制器里面的方法如果想要被浏览器访问的话,必须定义为public,控制器类也必须是public,否则不能被访问,而且控制器类名一定要以Controller结尾并且继承于Controller类,因为在ASP.NET MVC中,约定控制器必须以Controller结尾继承于Controller,但是你也可以不这样,但是需要配置,但是尽量按照约定来,这样的话很方便,这就是所谓的约定大于配置。