我正在使用 .Net MVC 4 为客户端构建一个站点。整个站点使用默认的 MVC 4 路由,所有页面都可以正常工作
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
)
网站上有一个名为“教师”的页面。对于此页面,有几个链接可将您带到新页面,这些新页面是“教师”页面的子集。客户希望 url 结构看起来像这样
www.{mysite}.com/School/Teachers/Apply
www.{mysite}.com/School/Teachers/Benefits
我想我可以简单地将申请和福利页面添加为我的 SchoolController 中的 ActionResult,然后使用 MVC 中的路由功能将 url 映射到 SchoolController 中正确的 ActionResult 方法。
这是我的控制器:
public class SchoolController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Administration()
{
return View();
}
public ActionResult Teachers()
{
return View();
}
public ActionResult Apply()
{
return View();
}
public ActionResult Benefits()
{
return View();
}
}
这是我尝试过的自定义路线。
routes.MapRoute(
"Teachers",
"{controller}/{page}/{action}",
new { controller = "School", page = "Teachers", action = "Index" }
)
我将此路由放置在默认路由之前,但这会将“教师”添加到网站上的每个 url,如下所示:
www.{mysite}.com/{controller}/teachers/{action}
概括
我网站上的所有页面都使用这个 url 结构:
www.{mysite}.com/{controller}/{action}
但是,这一页具有以下结构:
www.{mysite}.com/{controller}/teachers/{action}
我怎样才能用路线做到这一点?