ASP.NET MVC Url Routing - PullRequest
       8

ASP.NET MVC Url Routing

2 голосов
/ 07 декабря 2008

Нужен ли отдельный контроллер для нижеследующего?

http://localhost/bookmarks -> контроллер закладок http://localhost/bookmark/{bookmarkid} -> контроллер закладок

Есть ли способ объединить их в один контроллер? Я хочу, чтобы Uri оставался прежним, т.е. закладка в единственном числе, указывающая на выборку одной закладки.

Спасибо

1 Ответ

4 голосов
/ 07 декабря 2008

Предполагается, что среда разработки C #

Global.asax:

routes.MapRoute(
  "Bookmarks",
  "bookmarks",
  new { controller = "Bookmarks", action = "Bookmarks"}
);

routes.MapRoute(
  "Bookmark",
  "bookmark/{bookmarkid}",
  new { controller = "Bookmarks", action = "Bookmark" }
);

BookmarksController:

public ActionResult Bookmarks()
{
   //Get all bookmarks, I presume. :)
   return View();
}

public ActionResult Bookmark(string bookmarkid)
{
   //Do stuff with the bookmark id
   return View();
}

Используя эту схему маршрутизации, http://localhost/bookmarks выполнит действие «Закладки» в контроллере закладок, а http://localhost/bookmark/123456 выполнит действие «Закладка» в контроллере закладок.

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