0

ブログのルーティングを実装しようとしています。URL を複数のパラメーターで表示したいのですが、500 のネットワーク エラーが発生し続けており、目的のルートを取得すると、さまざまな場所で jquery と画像を探し始めているようです。私が欲しい。

ルートはこちら

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
    "Events",
    "Post/{action}/{id}/{categoryName}/{blogTitle}",
    new { controller = "Post", action = "Detail", id = "", 
          categoryName = "", blogTitle = "" }
);

コントローラーはこちら

public ActionResult Details(int id, string categoryName, string blogTitle)
{
    SitePosts posts = new SitePosts();
    Post post = posts.GetPost(id);

    ViewBag.IsAdmin = IsAdmin;
    return View(post);
}

そして、これが私がcshtmlかみそりヘルパーで使用しているリンクです

<a href="@Href("~/Post/Details/" + post.ID + "/" + post.Category.CategoryName + "/" + post.Title)">

アクションにリダイレクトする場合も同じことが当てはまります return RedirectToAction("Details", "Post", new { id = uid, categoryName = post.Category.CategoryName, blogTitle = UrlEncoder.ToFriendlyUrl(post.Title) });

なぜこれが起こっているのかわからない

4

1 に答える 1

0

自分で作成する代わりに、Html ActionLink ヘルパーを使用してみてください。また、ルーティング テーブルを調整して、渡す値を省略することもできます。ルート内で = "" 構文を使用して値を宣言する必要はありません。ルート式にそのままにしておくだけです。

ルート テーブル

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
    "Events",
    "Post/Detail/{id}/{categoryName}/{blogTitle}",
    new { controller = "Post", action = "Detail" }
);

表示 - リンクを作成

    @Html.ActionLink("DisplayText", "Detail", new{controller="Post", id = post.ID,
 categoryName=post.Category.CategoryName, blogTitle = post.Title})
于 2012-09-02T23:14:43.493 に答える