Mike

导航

ASP.NET MVC Tip #17 – 如何运行一个ASP.NET MVC应用程序


ASP.NET MVC Tip #17 – 如何运行一个ASP.NET MVC应用程序
ASP.NET MVC Tip #17 – How to Run an ASP.NET MVC Application

美语原文:http://weblogs.asp.net/stephenwalther/archive/2008/07/10/asp-net-mvc-tip-17-how-to-run-an-asp-net-mvc-application.aspx
国语翻译:http://www.cnblogs.com/mike108mvp 

译者注:在下水平有限,翻译中若有错误或不妥之处,欢迎大家批评指正。谢谢。

在这篇帖子中,我将解释在Visual Studio 2008中运行ASP.NET MVC应用程序时与webform不同的设置选项。我推荐你直接用ASP.NET Development Web Server(Visual Studio 2008内置的开发服务器)运行ASP.NET MVC应用程序。

一个ASP.NET MVC应用程序的工作方式与标准的ASP.NET Web Forms应用程序是不同的。当你请求一个URL,可能并没有对应的.aspx文件在你的硬盘中。例如,假设你请求下面的URL:

/Product/Index.aspx


没有理由假定该ASP.NET MVC应用程序包含一个Product文件夹或者Product文件夹中包含一个Index.aspx文件。ASP.NET MVC中的路径选择模块(Routing module)在默认情况下将这个请求映射到一个ProductController的控制器(controller) 中,并用调用ProductController的Index()方法。 然后由Index()方法来决定返回给浏览器的视图(View)(如果存在View的话)的呈现内容。

因此,运行ASP.NET MVC application比运行平常的ASP.NET Web Forms application更复杂。特别是,你并不想在web浏览器中打开当前页。例如,如果你有一个文件路径Views\Home\Index.aspx在Visual Studio 2008中打开了,接着你按F5键来运行你的应用程序,那么你并不想在web浏览器中打开这个Index.aspx文件。问题是Views\Home\Index.aspx并不是对应一个真实路径来显示Index view。真实路径看起来很像是/Home/Index.aspx,然而真正的真实路径是由URL Routing module来决定的,它可以是任何路径。

设置一个起始页

你可以通过修改 ASP.NET MVC项目的启动动作设置来控制你按F5或者Ctl-F5时发生的事情。在解决方案中右键单击你的项目,选择Properties菜单选项,选择Web选项,查看启动选项(见图1)。

图1 - 修改启动选项
Figure 1 – Modifying Start Options


那儿有两个部分你可以修改。Start Action部分能够让你指定运行应用程序会发生什么。那些选项是:

· 当前页 – 能够让你运行Visual Studio中当前正在编辑的页面。

· 特定页 – 能够让你设置运行一个特定页面。你可以在这里设置这个页面,也可以在解决方案的一个页面中右键单击,选择作为启动页(Set As Start Page)。

· 启动外部程序 – 能够让你运行一个外部程序。
· 启动URL – 能够让你去请求一个URL。这个选项在你创建一个Web Services应用程序时常常用到。

· 不要打开一个页面 – 能够让你不做任何事情。

默认情况下,一个ASP.NET MVC application设置为Specific Page这个选项。如果你运行一个ASP.NET MVC application,它将会一直打开默认页(路径是/)。

一个ASP.NET Web Forms application,相比之下,默认设置为Current Page这个选项。如果你有一个特定页在Visual Studio中打开了,那么将运行这个页。

注意,你可以将ASP.NET MVC Application 的启动页改变为一个特定页。例如,如果当你的应用程序启动时,你想要请求一个URL路径 /Product/Show/23,那么你可以将这个URL输入这个Specific Page选项的输入框中。

你也可以修改Servers选项部分。这个部分看起来只是针对 ASP.NET MVC Web Application 和 ASP.NET Web Forms Applications的,而不是针对ASP.NET Web Sites的。在这个部分中最有趣的设置是允许“编辑并继续”(Edit and Continue)选项。这个设置默认是禁用的。如果你启用它,那么你就可以在调试过程中在应用程序中修改代码。例如,你可以设置一个断点,运行到断点处,修改你的代码,按Continue按钮继续,并且新的修改将会马上生效。

从ASP.NET Development Server运行
Running from the ASP.NET Development Server

我起初是从Brian Henderson那里得知下面的技巧的。他建议你在任务栏的通知区域右键单击你的ASP.NET Development Server图标,并选择Open in Web Browser 选项(见图2)。这个建议是说你打开一个浏览器窗口一次后,在你开发一个网站时一直让这个窗口保持打开状态。


Figure 2 – Running from the ASP.NET Development Web Server

 

按照这些步骤来操作:
Follow these steps:

(1) 右键单击你的项目 -> 选择Properties选项 -> 选择Web标签 -> 导航到你的项目启动项设置中。
(2) 设置启动设置为Don’t open a page。
(3) 设置Enable Edit and Continue选项为启用它。
(4) 单击软盘图标保存你的设置。

当你作了这些设置后,单击“调试”菜单 -> 单击“Start Debugging”,或者单击“调试”菜单 -> 单击“Start without Debugging”将不会打开一个新的浏览器窗口。当你开始运行你的应用程序后,你可以从ASP.NET Development Server打开一个新的浏览器窗口来查看它(见图2)。

 

用这种奇怪的方式来运行你的MVC应用程序有什么好处呢?主要的好处是你可以让你的浏览器窗口一直打开一个特定的页面。你可以让你的MVC应用程序一直保持打开(甚至在调试时)。

 

通常,当你按F5打开一个新的浏览器窗口来运行一个ASP.NET MVC应用程序时,当你要停止调试时你必须关闭浏览器窗口。如果你已经导航到一个特定页,然后当你运行你的应用程序时,你必须每次都要重新开始,然后再导航到原来的特定页中,这将浪费大量的时间!

 

相比之下,如果你从ASP.NET Development Server中打开你的浏览器,那么你可以在你的MVC应用程序中保持打开你的URL地址。你甚至可以停止你的应用程序,设置新的断点,并且再次运行你的应用程序而无需关闭浏览器窗口。

 

总结
Summary

 

在这篇帖子中,我解释了项目选项,运行一个ASP.NET MVC应用程序时你可以设置它。我也推荐你从ASP.NET Development Server中运行你的ASP.NET MVC应用程序,以便于你能够在运行ASP.NET网站时,保持你的URL地址不变。
In this tip, I explained the project options that you can set for running an ASP.NET MVC application. I also recommended that you run your ASP.NET MVC applications from the ASP.NET Development Server so that you can maintain your location in a running ASP.NET web site.

 

 

posted on 2008-07-19 13:35  mike108mvp  阅读(2812)  评论(2编辑  收藏  举报