You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET中如何根据URL在Startup.cs配置不同首页端点?

解决.NET MVC多首页路由问题

你的核心问题出在重复配置端点路由,以及可能缺少对应控制器的Action方法来关联视图。下面一步步解决:

1. 修复Startup.cs的路由配置

你现在两次调用app.UseEndpoints,不仅冗余,还会导致同名路由冲突。把所有路由规则合并到一次UseEndpoints调用中:

app.UseEndpoints(endpoints =>
{
    // 默认路由:根路径默认指向Home/Other
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Other}/{id?}"
    );

    // 可选:添加快捷路由,直接通过/Site访问Home/Site
    endpoints.MapControllerRoute(
        name: "site-shortcut",
        pattern: "Site",
        defaults: new { controller = "Home", action = "Site" }
    );

    endpoints.MapRazorPages();
});

2. 确保HomeController存在并关联视图

Views/Home下的.cshtml是MVC视图,必须对应HomeController中的Action方法才能渲染。创建Controllers/HomeController.cs文件,代码如下:

using Microsoft.AspNetCore.Mvc;

namespace YourAppName.Controllers; // 替换成你的项目命名空间

public class HomeController : Controller
{
    // 返回Other.cshtml视图
    public IActionResult Other()
    {
        return View();
    }

    // 返回Site.cshtml视图
    public IActionResult Site()
    {
        return View();
    }
}

3. 正确的URL访问方式

配置完成后,用以下URL即可访问对应页面:

  • 根路径 myapplication.azurewebsites.net/:默认打开Other.cshtml
  • myapplication.azurewebsites.net/Home/Site:打开Site.cshtml
  • 如果添加了快捷路由,还可以用 myapplication.azurewebsites.net/Site 直接访问Site.cshtml

你之前尝试的带Views或.cshtml后缀的URL都是错误的——MVC框架不会直接暴露视图文件路径,必须通过控制器的Action来访问。

内容的提问来源于stack exchange,提问作者Ken Newman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:05:03