这是我的控制器
public class SpecializationsController : Controller
{
public ActionResult Action1()
{
//body
}
public ActionResult Action2()
{
//body
}
Action1的默认网址当然是/Specialization/Action1
。我想为我的控制器中的所有动作添加前缀,使我的ulr像/prefix/Specialization/Action1
。
我尝试将[RoutePrefix("prefix")]
添加到我的控制器,但它不起作用。我想避免为控制器中的每个操作添加[Route]
属性。那么我该如何添加这个前缀?
答案 0 :(得分:1)
您需要为路线集添加路线,而不是使用路线属性
routes.MapRoute(
"Route",
"prefix/{controller}/{action}",
new { controller = "Specializations", action = "Index" });
答案 1 :(得分:1)
我会创建Areas:
区域是一个ASP.NET MVC功能,用于将相关功能组织到一个组中,作为单独的命名空间(用于路由)和文件夹结构(用于视图)。使用区域通过添加另一个路径参数
来创建用于路由的层次结构
我知道你可能认为仅仅有一个“前缀”是一种矫枉过正,但我建议这种方法的原因是因为如果你需要添加一个“前缀”,你可能需要将视图分开,模型等。