0
net mvc 3並試圖創建一個博客應用程序。我想有一個包含一個urlheader如URL:在asp.net中自定義urlheader博客
博客/詳細信息/第三後
但是,我得到一個URL是這樣的:
Blog/Details/3?urlHeader=Third-post
我在做什麼錯誤?
我的博客控制器如下:
public ViewResult Details(int id, string urlHeader)
{
var blogs = blogrepository.GetBlog(id);
var recentblogs = blogrepository.FindRecentBlogs(5);
var archivelist = blogrepository.ArchiveList();
BlogDetailsViewModels viewModel = new BlogDetailsViewModels { Blog = blogs, RecentBlogs = recentblogs, ArchiveList = archivelist };
return View(viewModel);
}
和路徑方法如下:
routes.MapRoute(
"BlogDetail", // Route name
"Blog/Details/{urlHeader}", // URL with parameters
new { controller = "Blog", action = "Details" }, // Parameter defaults
new { urlHeader = "" } // Parameter constraints
);
和鏈接如下:
@Html.ActionLink(Model.Title , "Details", "Blog", new { id = Model.BlogID, urlHeader = Model.UrlHeader }, null)
這裏有些不一致的東西。您在ActionLink中傳遞了一個'id'參數,但是您的路由定義中沒有{{id})佔位符(實際上存在 - 在我懷疑您保留的默認路由中,以及與此新路由衝突的路由) 。如果你期望'Blog/Details/Third-post'作爲url,給予'id = Model.BlogID'有什麼意義?你不想讓目標網址成爲「Blog/Details/3/Third-post」嗎? – 2012-07-28 09:31:23
id是http post詳細博客控制器需要獲取正確的博客文章 – Tripping 2012-07-28 09:36:11
好吧,然後修復你寫下你希望'Blog/Details/Third-post'爲url的問題。你想要'Blog/Details/3/Third-post'。 – 2012-07-28 09:36:37