1

当您转到 ASP 网站的根目录(webforms 或 MVC)时,Web 服务器如何知道要加载哪个 .aspx 或 .cshtml 文件,以及bin/目录中的哪个 dll 包含要执行的代码?两者如何搭配?

4

1 回答 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.

组件

关于DLLs 部分,这完全是关于你的第一个文件......

.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 回答