私はMVC3に新しいですし、この問題に移動することはできません。 私はポストを持つ簡単なブログを作っています。ポストはカテゴリに分かれていて、各投稿にはいくつかのタグがあるかもしれません。 私は、ユーザーへの投稿を表示した場合は、URLが「1」は、ページの数である、ローカルホスト/投稿/ 1と同様であり、私は、そこにページングを持っています。 しかし、私はいくつかのカテゴリまたはいくつかのタグからだけ投稿を表示したい場合、これを行うことはできますか? それは「1」が、私はフォーマットのローカルホストにあるようにそれをすべて変更したいカテゴリまたは「TAG1」とは、特定のタグ ではlocalhost /記事/タグ/タグ1のIDであり、フォーマットはlocalhost /記事/カテゴリー/ 1であります/ posts/Page/1またはlocalhost/Posts/Categories/1/Page/1またはlocalhost/Posts/Tags/tag1/Page/1を使用してください。 私の質問は:どのようにコントローラでこれらの複雑なURLを受け入れるためのメソッドを作るのですか?複雑なURL
私はそれがルーティングとは何かを持っていると思いますが、私の問題のいずれかの説明を見つけることができませんでした。任意の助け
おかげで多くのことを。
マイコード:
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
私は、路線全体を本当に快適に過ごす前に、ちょっと迷ってしまい、デザインの選択が間違っていました。あなたに問題を起こしている特定のルートがある場合は、SOの誰かが助けてくれるでしょう。 – Dave