如何自定义URL以使用与我的控制器不同的名称?

时间:2010-03-04 21:05:15

标签: asp.net-mvc url routing

我正在使用ASP.NET MVC开发网站,我需要自定义我的URL以使用不是我的控制器名称的名称。

我想使用这个类/方法名称:

public class CompanyController:Controller {
    public ActionResult About() {
        return View();
    }
}

但我想使用网址 http://www.mysite.com/the-company/about-us 来访问我的控制器/方法。

我该怎么办?

谢谢。

2 个答案:

答案 0 :(得分:4)

由于你的问题主要是关于控制器命名,我会(与@Nissan Fan的答案相反)做至少这种概括,为了使路由更灵活并最小化路由量,你必须定义:

routes.MapRoute(
    "CompanyRoute",
    "the-company/{action}",
    new { controller = "Company", action = "About" }
);

你的控制器当然应该这样写:

public class CompanyController : Controller
{
    [ActionName("about-us")]
    public ActionResult About()
    {
        return View("About");
    }
}

答案 1 :(得分:2)

您将使用网址路由:

http://www.asp.net/learn/mvc/tutorial-05-cs.aspx

routes.MapRoute(
                "AboutUs",                                           // Route name
                "the-company/about-us",                            // URL with parameters
                new { controller = "CompanyController", action = "About" }  // Parameter defaults
            );