用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站

从ASP.NET MVC第一个版本开始到现在,创建ASP.NET MVC项目的官方方法只有一个,“文件”->“新建”->“项目”,然后选择ASP.NET MVC X Web应用程序。

这种方式当然有其好处,但是很多时候,网站项目(WebSite)而不是Web应用程序(WebProject)更适合大型网站,能更充分的利用ASP.NET的优势,创建可伸缩性更好的网站出来。

其实说到底,ASP.NET MVC也不过就是一个ASP.NET的一个扩展框架而已,所以网站项目当然也能用上MVC,并且,可以用的更好。

事实上,在Jumony的项目中,关于Jumony for MVC的范例就是用的网站项目而不是Web应用程序。

接下来,我就用VS2010 + ASP.NET 4(包含 MVC 2)来演示如何在网站项目用上ASP.NET MVC。

那么首先,我们先要创建一个解决方案和一个网站(似乎是废话),像下面这样:

因为我使用了VS的一个插件,所以解决方案浏览器可能与你电脑上的看起来不太一样,不要担心,这是正常的。

然后,其实除了Global.asax和web.config之外的所有东西都是多余的,删除之,我们得到了一个空白的网站:

继续,我们为网站添加ASP.NET MVC框架的引用,这里我添加的是ASP.NET MVC 2的,其实也就一个System.Web.Mvc:

添加后应该在web.config中能看到这一引用:

然后我们添加一个Controller,Controller是一个类型,我们直接为网站项目添加一个TestController类型就可以了(注意Controller类型名称必须以Controller结尾):

然后会提示要不要把类型文件放在App_Code,那么显然,然后网站像这样:

注意请一定要将代码文件放在App_Code中,或者引用的第三方项目中,否则不是一个合法的网站项目,这和WebProject是完全不同的。

我们修改TestController类,使其继承于Controller,删去默认的构造函数,然后随便弄一个Action出来,所谓Action就是返回ActionResult的一个方法而已:

接下来是配置路由,先给网站添加另一个项目的引用:System.Web.Routing,方法与添加System.Web.Mvc一样,不再赘述。

然后打开global.asax文件,在App_Start方法中添加路由注册的代码,像这样:

注意上面的@Import指令,如果你没有智能提示,或是没有看到MapRoute这个扩展方法,检查一下是不是有这个Import。

每个页面都添加@Import指令是非常麻烦的,所以我们可以在web.config中稍作配置:

这是我修改后的web.config文件,我删去了其他所有的乱七八糟的东西。

接下来就可以测试一下路由是不是正确了,如果你完全依照上面的方法做了的话,现在右击网站,选择在浏览器中查看,应该会看到这样一个页面:

如果是404错误或者其他错误,请检查是不是设置了什么起始页之类,或是web.config配置有误。

OK,我现在假定你看到了和我看到的一样的错误页,这个错误页说明我们已经成功部署了MVC环境,但还缺最后一个东西,“视图”。

接下来在网站根目录创建一个Views目录,接着在里面创建Test子目录,往里面添加一个Test.aspx文件:

请注意不要勾选那个将代码放在单独的文件中,那个是默认勾选的,如果不出意外,现在的网站结构是这样的了:

但这个aspx文件还不能直接当作MVC的视图,因为MVC默认的WebFormViewEngine对视图页还有一些特殊的要求,但事实上也很简单,只需要打开这个aspx文件,把@Page指令像下面这样修改就可以了:

没错,MVC的视图页必须从ViewPage继承。

然后我还顺便修改了一下这个页面,使得它会呈现一个Hello MVC字符串。那么这时候,再选择在浏览器中查看网站,就应该呈现为下面这个样子了:

到 这里,整个ASP.NET MVC框架就完全在网站项目中部署成功了。本文其实只是一篇授人以鱼的文章,大家在一步步的部署成功ASP.NET MVC网站(而不是WebProject)后,可以思考每一个步骤的必要性和目的。真正做到知其然还知其所以然。也可以尝试不要把Controller放 在App_Code文件夹中,而是放在第三方引用项目中,这样能够创建出伸缩性更好的网站结构。

用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站,布布扣,bubuko.com

时间: 2024-12-26 20:27:35

用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站的相关文章

利用Powershell自动部署asp.net mvc网站项目 (一)

这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交道,部署过程中协作的组建太多,相互之间的交集不可能太大.可能唯一能够通用的是自动化部署的基本原则(只是这篇文章的基本原则): 每一次自动化部署结束之后,应用程序都会有相同的初始状态. 自动化部署的机器非常干净,只有相应的 Windows Server 系统和 .NET Framework.尤其是,不

VisualStudio使用本地IIS服务调试ASP.NET MVC 网站

目标:使用本地IIS服务调试ASP.NET MVC 网站 操作系统:windows 8.1企业版 IIS:系统自带IIS6.0 VisualStudio版本:2013 SP5 MVC 版本:MVC 4.5.1 =================================================================== 概要: 1.IIS 服务安装及配置 2.Visual Studio 关联IIS服务 3.局域网内访问调试中的网站 ====================

《微软Azure云计算开发实战(2):Azure部署ASP.NET MVC 网站

今天我们继续学习Azure的实战开发,<微软Azure云计算开发实战(2):Azure部署ASP.NET MVC 网站. 在你注册完Azure的使用账户以后,下面就可以登陆Azure管理界面了.因为我们后续的开发工作都要用到Azure的资源. Azure作为公有云平台,提供了几乎所有的平台支持,操作系统包括Linux Mac OS Windows,数据库主流的都支持,网站空间,数据库,虚拟主机操作系统 几乎都有.还有流媒体服务,Hadoop集成,Bigtable等. 我们先来学习一下如何部署一个

[转] 使用 Glimpse 监测 ASP.NET MVC 网站

使用MiniProfiler调试ASP.NET MVC网站性能,MiniProfiler 可以很好的处理网站后端每个处理时间的事件,但是 MiniProfiler 是无法远程做监测的动作,MiniProfiler只能够监测本地端的动作,所以 MiniProfier 比较适合开发期间使用. 在开发 ASP.NET WebFrom 时,如果想要追踪每个页面的执行状况与效能的话,其实是可以使用“Trace”功能,如此一来就可以在每个页面的下方显示页面执行时的完整详细信息,包括前端传送的 Http Re

在Windows Azure上创建ASP.NET MVC网站

本篇体验在Windows Azure上创建ASP.NET MVC网站. →登录到Windows Azure管理门户 →点击左下方的"新建" →点击"自定义创建",在界面中填写如下:注意:用户名就是服务器的管理员登录名.点击确定. →点击网站名称. →点击右侧的"下载发布配置文件",把后缀名为PublishSettings的文件保存到本地硬盘上,记住保存的位置. →到这里下载Visual Studio 2012的SDK,并安装,需要比较长的时间.

ASP.NET MVC 网站开发总结(三) ——图片截图上传

本着简洁直接,我们就直奔主题吧,这里需要使用到一个网页在线截图插件imgareaselect(请自行下载). 前台页面: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="css/imgareaselect-default.css" /> </head> <

总结一下ASP.NET MVC 网站的部署问题

总结一下ASP.NET MVC 网站的部署问题 近日,准备把MVC建了一个新的测试站点部署到IIS上面,结果没想到出现了一系列的问题和错误,准备记录一下. 第一个问题,就是如何将MVC的站点部署到IIS上去? 现在我的系统是Windows 7,IIS也是7.0的版本,一开始部署的时候,还是按照.NET 2.0的方式部署,选择的是经典的模式,结果错误页面就出现了. 这张图是一开始按照原有的习惯部署.NET2.0的方式部署的,大家仔细看那个应用程序池,选择的是自己新建的,而且是经典模式 下面这张,就

关于linux asp.net MVC网站中 httpHandlers配置无效的处理方法

近期有Jexus用户反映,在Linux ASP.NET MVC网站的Web.config中添加 httpHandlers 配置用于处理自定义类型,但是在运行中并没有产生预期的效果,服务器返回了404(找不到网页)错误.经我亲自测试,在WebForm网站中,httpHandlers节点的配置是有效的,而在MVC中的确无效. 造成httpHandlers无效的原因我并没有时间去深究,为了能及时解决这个问题,我把注意力放到了Global.asax文件的Application_BeginRequest方

快速构建ASP.NET MVC Admin主页

前言 后台开发人员一般不喜欢调样式,搞半天样式出不来,还要考虑各种浏览器兼容,费心费力不讨好,还好互联网时代有大量的资源共享,避免我们从零开始,现在就来看怎么快速构建一个ASP.NET MVC后台管理admin主页的方法,先看一看最终的效果! 第一步:选择一个合适的admin模板 互联网时代就是资源共享的时代,网上各种前端模板,这里主要是说明怎么把模板整合到我们的ASP.NET MVC项目中,至于模板大家可以自己去选择喜欢的,这里我们选择这个清爽版的AircraftAdmin,首先看看Aircr