MVC3 ::使用global.asax将特定控制器/操作定向到不同的控制器/操作

时间:2012-05-03 16:31:45

标签: asp.net-mvc-3 routes

在MVC3应用程序中,我的家庭控制器中有一个视图,可通过以下URL访问:

http://mysite.com/home/mycontent

但是,我的用户希望通过以下方式加入:

http://mysite.com/mycontent(没有特定的家庭控制器参考)

我尝试使用以下内容修改global.asax:

    routes.MapRoute(
        "MyContent", // Route name
        "MyContent", // URL with parameters
        new { controller = "Home", action = "MyContent"} // Parameter defaults
    );

但是当我尝试使用它时,我收到404错误。有没有办法可以完成我的用户想要做的事情 - 将URL重定向到特定的控制器/视图对?

2 个答案:

答案 0 :(得分:2)

我认为你应该保留一些“参数”:

routes.MapRoute(
        "MyContent", // Route name
        "{action}/{id}", // URL with parameters
        new { controller = "Home", action = "MyContent", id = ""} // Parameter defaults
    );

答案 1 :(得分:1)

您的路线以何种顺序注册?该路线应该在您的默认路线之前。

E.g。

routes.MapRoute(
    "MyContent", // Route name
    "MyContent", // URL with parameters
    new { controller = "Home", action = "MyContent"} // Parameter defaults
);

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Pages", action = "Index", id = UrlParameter.Optional }
);

否则,它应该工作......我的路由定义与此完全相同。