1

在 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 重定向到特定的控制器/视图对?

4

2 回答 2

2

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

routes.MapRoute(
        "MyContent", // Route name
        "{action}/{id}", // URL with parameters
        new { controller = "Home", action = "MyContent", id = ""} // Parameter defaults
    );
于 2012-05-03T16:41:27.990 回答
1

您的路线按什么顺序注册?该路线应该在您的默认路线之前。

例如

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 }
);

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

于 2012-05-03T16:59:10.453 回答