当前位置:  开发笔记 > 后端 > 正文

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

如何解决《ASP.NETMVC-MapRoute与routes.Add(和404s)》经验,为你挑选了2个好方法。

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

MapRoute和routes.Add有什么区别?我应该只使用MapRoute吗?我可以映射多条路线吗?哪个"地图"优先...那些你先打电话或最后打电话?

我希望能够为StackOverflow做类似的事情.但我希望URL符合这种模式:
"User/{domain}/{username}"将路由到UserController

以及执行典型ASP.NET MVC路由的所有其他请求.例如:

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

更新:
使用URL时: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);
    }
}

Brannon.. 37

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

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



1> Brannon..:

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

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



2> JMS..:

您的用户控制器应具有

public class UserController : Controller {
    public ActionResult Index(string domain, string username) { return View(); }
}

从路径中获取用户控制器的Index方法上的两个变量.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有