私はMVC3アプリケーションに取り組んでいます。
私の見解では、アンカーリンクに@Html.ActionLinkを使用しています。すべてが正常に機能しています。ただし、これらのリンクには、現在のURLのパラメータがリンクに含まれています。
私の現在のリンクがhttp://localhost:25466/Blog/all/2
生成されているアクションリンクはhttp://localhost:25466/Blog/Blog/shoes/2
上記のリンクでは、実際にはURLに「2」を含めることは何もしていません。しかし、それでも追加されています。
私のルート設定は
routes.MapRoute(
"Blog", "Blog/Blog/{tag}/{id}",
new { controller = "Blog", action = "Blog", tag = UrlParameter.Optional,id="1" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = "1" },
constraints: new { id = @"\d+" }
);
そして私の行動は
public ActionResult All(int id)
{
var context = new BlogCore.DbContext.BlogContext();
var list = context.Get(id,20);
return View(list);
}
public ActionResult Blog(string tag,int id)
{
var context = new BlogCore.DbContext.BlogContext();
var list = context.Get(HttpUtility.UrlEncode(tag), id, 20);
return View("All", list);
}
そしてこれが私がactionlinkを使ってアンカーリンクを生成する方法です
@Html.ActionLink(blog.PostTitle, "Blog", "Blog", new { tag = blog.PostRewriteName }, null)
アクションリンクで2を回避するにはどうすればよいですか。
前もって感謝します。