ASP.NET MVC - 路由结构

时间:2016-05-25 13:15:23

标签: asp.net-mvc routing

我有一个ASP.NET MVC 4.5应用程序。在这个应用程序中,我有两个控制器:ParentChildren。看起来像这样:

[RoutePrefix("dashboard/parents")]
public partial class ParentsController : Controller
{
  public ActionResult Index()
  {
    return View();
  }

  [Route("add")]
  public ActionResult Add()
  {
    return View();
  }
}

[RoutePrefix("dashboard/children")]
public partial class ChildrenController : Controller
{
  public ActionResult Index()
  {
    return View();
  }

  [Route("add")]
  public ActionResult Add()
  {
    return View();
  }
}

此时,这些控制器按照我的要求工作。但是,在我的ChildrenController中,我想在添加路由中添加类似重载的内容。换句话说,我希望用户能够访问:/ dashboard / parents / {parentId} / children / add。此URL将用于将子项添加到特定父项。我的问题是,如何更新我的控制器以允许这种类型的场景?

谢谢你!

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找的是"〜"覆盖默认的routeprefix ..以下示例来自asp.net网站,该网站告诉您如何完成任务。

[RoutePrefix("api/books")]
public class BooksController : ApiController
{
    // GET /api/authors/1/books
    [Route("~/api/authors/{authorId:int}/books")]
    public IEnumerable<Book> GetByAuthor(int authorId) { ... }

    // ...
}