ASP.NET MVC - MapRoute 与 paths.Add(和 404)

2024-01-14

我刚刚开始使用 ASP.NET MVC。

MapRoute 和 paths.Add 之间有什么区别? 我应该只使用 MapRoute 吗?我可以绘制多条路线吗?哪些“地图”优先……您首先调用的还是最后调用的?

我希望能够为用户做一些类似于 StackOverflow 的事情。 但我希望 URL 符合这种模式:
“User/{domain}/{username}”将被路由到 UserController

对于所有其他请求,执行典型的 ASP.NET MVC 路由。前任:

        routes.MapRoute(
            "Default", "{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", id = "" }  
        );

UPDATE:
使用 URL 时:http://localhost:3962/User/MYDOMAIN/BTYNDALL http://localhost:3962/User/MYDOMAIN/BTYNDALL
我收到错误:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。

这是我正在使用的代码:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "User",                                                     
            "User/{domain}/{username}",                           
            new { controller = "User", action = "Index" }      
        );

        routes.MapRoute(
            "Default",                                              
            "{controller}/{action}/{id}",                           
            new { controller = "Home", action = "Index", id = "" }  
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
    }
}

MapRoute()是一个扩展方法Routes.Add(). Use MapRoute(),除非你需要做一些比它允许的更复杂的事情。

路由按照定义的顺序进行评估,因此您先调用的路由。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC - MapRoute 与 paths.Add(和 404) 的相关文章

随机推荐