2016-05-25 6 views
0

У меня есть приложение ASP.NET MVC 4.5. В этом приложении у меня два контроллера: Parent и Children. Вид выглядит примерно так:ASP.NET MVC - Структура маршрутизации

[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-адрес будет использоваться для добавления дочернего элемента к определенному родительскому элементу. Мой вопрос: как мне обновить контроллеры, чтобы разрешить этот тип сценариев?

спасибо!

ответ

0

Я думаю, что вы ищете «~», чтобы переопределить ваш defaultprorefix по умолчанию. Следующий пример берется с веб-сайта 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) { ... } 

    // ... 
} 
+0

Прохладный! Я не знал о подходе тильды. Спасибо, что поделился. – user687554

Смежные вопросы