【问题标题】:How does my ASP.NET MVC application know which view to serve?我的 ASP.NET MVC 应用程序如何知道要提供哪个视图?
【发布时间】:2021-01-22 06:26:53
【问题描述】:

我试图了解我的 MVC 应用程序如何知道如何提供页面。我从别人那里继承了这个项目,所以我不完全确定一切是如何运作的。这是一个 ASP.NET Web 应用程序,您可以在 http://hollandandbarnes.azurewebsites.net/ 看到它。

当您转到该链接时,主页会加载。这是从 Home.cshtml 视图提供的。但是它怎么知道服务于 Home.cshtml 视图呢?

在主目录下,有一个default.aspx文件:

<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="True" Inherits="umbraco.UmbracoDefault" trace="true" validateRequest="false" %>

...和一个 Global.asax 文件:

<%@ Application Inherits="Umbraco.Web.UmbracoApplication" Language="C#" %>

我在后端有三个控制器,它们都不服务于 Home.cshtml 视图:

  • AccountController.cs
  • CartController.cs
  • FormController.cs

我假设 default.aspx 是它命中的第一个文件,但之后会发生什么?

【问题讨论】:

    标签: asp.net model-view-controller view


    【解决方案1】:

    可能有不同的方法,也许其中一种适合:

    在 IIS 管理器中定义起始页:

    https://support.microsoft.com/en-us/help/320051/how-to-configure-the-default-document-in-internet-information-services

    在您的 web.xml 文件中定义一个起始页:

    <configuration> 
    <system.webServer> 
        <defaultDocument enabled="true"> 
            <files> 
                <add value="home.cshtml" /> 
            </files> 
        </defaultDocument> 
    </system.webServer>
    

    有一个 RouteConfig 类 (link):

    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Account", action = "Home", id = UrlParameter.Optional }
            );
        }
    }
    

    收听会话开始:

    How can I define a start page in my ASP.NET website (IIS)

    可能还有更多选择

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多