ASP.NET MVC - Маршруты - PullRequest
       9

ASP.NET MVC - Маршруты

0 голосов
/ 29 августа 2009

Я работаю над приложением MVC, у меня есть область администратора ... Итак, что мне нужно:

Когда пользователь отправляет запрос администратору (например, "/ Admin / Post / Add"), мне нужно сопоставить это с контроллером Admin Запись и действие Добавить ... возможно ли это?

1 Ответ

2 голосов
/ 29 августа 2009

Если ваш контроллер называется AdminPostController и вы хотите, чтобы он отображался в '/ Admin / Post / Add', тогда вы можете использовать:

routes.MapRoute("Admin",  // Route name
  "Admin/Post/{action}/{id}",  // URL with parameters
  new { controller = "AdminPost", action = "Add", id = "" }  // Parameter defaults
);

Обратите внимание на использование параметров по умолчанию.

Если ваш контроллер называется AdminController и вы просто хотите разделить метод запроса, используйте значение по умолчанию:

routes.MapRoute("Default",  // Route name
  "{controller}/{action}/{id}",  // URL with parameters
  new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);

Который будет сопоставлять '/ Admin / Add /' с контроллером:

public class AdminController : Controller {

  [AcceptVerbs(HttpVerbs.Post)]
  public ActionResult Add(int id) {
    //...
  }

  [AcceptVerbs(HttpVerbs.Get)]
  public ActionResult Add(int id) {
    //...
  }

}

Обратите внимание на использование [AcceptVerbs] для определения того, какой метод вызывать для запросов POST и GET.

См. блог Скотта Гу для получения более подробной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...