当您转到 ASP 网站的根目录(webforms 或 MVC)时,Web 服务器如何知道要加载哪个 .aspx 或 .cshtml 文件,以及bin/
目录中的哪个 dll 包含要执行的代码?两者如何搭配?
问问题
420 次
1 回答
5
我不知道您是在寻找一个非常技术性的答案,还是一个简单的概述。所以,这里有一个简单的概述。
默认文件
当您转到 ASP 网站的根目录时
ASP、HTML、PHP 或您使用的任何技术,Web 服务器知道要搜索的默认文档并在未提供文档时显示,例如,在 Microsoft IIS Server 中,默认文档是:
这对于 Apache 服务器也是如此,有一个设置告诉服务器“如果您没有文档名称,请使用这个”设置,这个在.htaccess
文件中找到并且具有:
DirectoryIndex index.php index.html index.htm default.html default.htm home.html
在 ASP.NET MVC 中,您使用路由表,并且在Global.asax
文件中提到了路由,可以通过直接指定路由或调用外部文件(类),常见的路由是:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
这表明,如果没有提供路线,它将与/Home/Index
.
组件
关于DLL
s 部分,这完全是关于你的第一个文件......
.NET 站点已预编译并公开了它们的命名空间和属性,您将在 ASP.NET Webforms 中拥有,在第一行代码中是这样的:
<%@ Page Title="Home Page" Language="C#"
MasterPageFile="~/Site.Master"
AutoEventWireup="true"
CodeBehind="Default.aspx.cs"
Inherits="WebApplication3._Default" %>
这告诉服务器在WebApplication3._Default
内部运行,Default.aspx.cs
并从那里附加任何需要的程序集来运行代码。
于 2013-01-08T14:03:50.160 回答