我是MVC3的新手,無法解決此問題。 我正在製作一個簡單的博客帖子,分爲不同的類別,每個帖子可能有一些標籤。 如果我向用戶顯示帖子,我在那裏尋呼,其中url就像localhost/Posts/1,其中「1」是頁面的編號。 但我怎麼能做到這一點,如果我想顯示帖子只從某個類別或與一些標籤? 它的格式爲localhost/Posts/Categories/1,其中「1」是類別或localhost/Posts/Tags/tag1的id其中「tag1」是特定標記 我想將其全部更改爲localhost格式/ Posts/Page/1或localhost/Posts/Categories/1/Page/1或localhost/Posts/Tags/tag1/Page/1,但我真的無法知道如何在控制器中實現此目的。 所以我的問題是:如何使控制器中的方法接受這些複雜的URL?C#中的複雜URL MVC3
我想它與路由有關,但找不到我的問題的任何解釋。
非常感謝您的幫助。
我的代碼:
public ActionResult Tags(string id)
{
Tag tag = GetTag(id);
ViewBag.IdUser = IDUser;
if (IDUser != -1)
{
ViewBag.IsAdmin = IsAdmin;
ViewBag.UserName = model.Users.Where(x => x.IDUser == IDUser).First().Name;
}
return View("Index", tag.Posts.OrderByDescending(x => x.DateTime));
}
public ActionResult Index(int? id)
{
int pageNumber = id ?? 0;
IEnumerable<Post> posts =
(from post in model.Posts
where post.DateTime < DateTime.Now
orderby post.DateTime descending
select post).Skip(pageNumber * PostsPerPage).Take(PostsPerPage + 1);
ViewBag.IsPreviousLinkVisible = pageNumber > 0;
ViewBag.IsNextLinkVisible = posts.Count() > PostsPerPage;
ViewBag.PageNumber = pageNumber;
ViewBag.IdUser = IDUser;
if (IDUser != -1)
{
ViewBag.IsAdmin = IsAdmin;
ViewBag.UserName = model.Users.Where(x => x.IDUser == IDUser).First().Name;
}
return View(posts.Take(PostsPerPage));
}
非常感謝,這就是我認爲這是應該的,但好像我採用的參數錯誤。 – Petr 2012-02-15 14:25:10
在我對整個路線事情感到滿意之前,我花了相當多的時間搞亂了設計選擇 - 這與我之前做過的事情截然不同。如果你有特定的路線給你帶來麻煩,那麼SO上的某個人可以提供幫助。 – Dave 2012-02-15 14:32:40