【问题标题】:Creating A new Route in MVC在 MVC 中创建新路由
【发布时间】:2013-10-02 02:07:46
【问题描述】:

在 MVC 中,默认的路由 url 模式是 - url : "{controller}/{action}/{id}"

当我在默认路由之前添加如下所示的新路由时,默认路由的 url 显示为 Home/Index?id=5 而不是 Home/Index/5。如何解决这个问题。

routes.MapRoute(
            name: "Name",
            url: "{controller}/{action}/{name}",
            defaults: new { controller = "Home", action = "Browse", name = UrlParameter.Optional }
        );  

【问题讨论】:

  • 你能给name一个默认值吗?如果是这样,那应该可以解决问题: routes.MapRoute( name: "Name", url: "{controller}/{action}/{name}", defaults: new { controller = "Home", action = "Browse" , 名称 = "" });

标签: asp.net-mvc asp.net-mvc-4


【解决方案1】:

默认路由永远不会被命中,因为从路由的角度来看,您添加的路由完全相同。因此,如果默认路由是唯一的,或者放置在您的之前,您的路由将捕获默认路由将捕获的所有内容。两者都将匹配一、二和三段 URL。

【讨论】:

  • @user2813261 你真的需要默认路由吗?唯一的区别是你的action 有不同的默认值,第三段有不同的名称。
【解决方案2】:

那条路线是不必要的,而且几乎没用。 就像@asymptoticFault 所说的那样,它与默认的目的相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    相关资源
    最近更新 更多