【问题标题】:MVC 3 How to use MapRouteMVC 3 如何使用 MapRoute
【发布时间】:2011-06-22 12:28:52
【问题描述】:

有人可以告诉我如何使用 MapRoute 方法吗?我尝试过创建自己的路线,但它不起作用。我想要完成的是将“http://servername/home/default.aspx”路由到控制器“Home”和操作“Default”的路由。另外,是否可以说如果用户正在浏览default.aspx“文件”,它实际上会指向“索引”操作?

我曾尝试阅读 MSDN 参考资料并进行谷歌搜索,但这并没有让我变得更聪明。

【问题讨论】:

  • 你需要解释更多。您是想在 MVC 中显示 WebForms,还是说您要创建一个路由,当在浏览器中输入“servername/home/default.aspx”时,路由到 controller = "Home", action = "Index"?

标签: c# asp.net-mvc-3 routes maproute


【解决方案1】:

帮助提出问题但可能帮助其他人的开发人员可能为时已晚。 MVC 的新手,但我发现地图路线似乎是按照它们添加的顺序处理的。我遇到了类似的问题,直到我开始将默认路由添加为最后一条路由,我的特定路由才起作用。

如果默认地图路线添加在您的自定义路线之前,并且您的自定义网址与默认地图路线定义的结构相匹配,您将永远无法到达您的自定义路线。

【讨论】:

    【解决方案2】:

    您要配置问题第一部分的路线是:

    routes.MapRoute(
        "",
        "home/default.aspx",
         new { controller = "Home", action = "Default" }
    );
    

    假设您希望使用某种参数“浏览”default.aspx,您可以执行以下操作:

    routes.MapRoute(
        "",
        "home/default.aspx/{param}",
        new { controller = "Home", action = "Default", param = UrlParameter.Optional }
    );
    

    然后您需要创建默认操作以接受字符串参数。

    【讨论】:

    • 这就是我认为我会使用 maproute 方法的方式,但是当我尝试浏览该站点 (home/default.aspx) 时出现错误 404
    • 嗯,尝试在全新的 ASP.NET MVC3 解决方案上运行它。这就是我所做的,它工作得很好。一定有其他东西阻止了路由的解析。
    • 我必须注释掉默认的 MapRoute 才能使其工作。不知道为什么,但现在我可以根据需要添加尽可能多的 MapRoute,并且它会选择正确的使用而不会出现任何问题。问题:我如何重写关键字“默认”,使其改为“索引”。 IE。当我浏览 home/default.aspx 它指向 home-controller 和 action Index 而不是 action Default?
    【解决方案3】:

    您还必须确保参数名称与操作的参数名称相同。 示例:

        routes.MapRoute(
            name: "MyName",
            url: "{controller}/{action}/{myParam}",
            defaults: new { controller = "MyController", action = "MyAction", id = UrlParameter.Optional }
        );
    
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    

    我的控制器:

    public ActionResult MyAction(string myParam = "")
    {
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多