2

以下の場合、別のコントローラーが必要ですか?

http://localhost/bookmarks --> ブックマーク コントローラ http://localhost/bookmark/ {bookmarkid} --> ブックマーク コントローラ

両方を 1 つのコントローラーに結合する方法はありますか? 単一のブックマークをフェッチすることを示す単一のブックマークなど、uri を同じに保ちたいと思います。

ありがとう

4

1 に答える 1

4

C# 開発環境を想定

Global.asax:

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

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

ブックマークコントローラー:

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は Bookmarks コントローラーの Bookmarks アクションにヒットし、http://localhost/bookmark/123456は Bookmarks コントローラーの Bookmark アクションにヒットします。

于 2008-12-07T17:14:53.970 に答える