net mvc 3 and trying to create a blog application. I want to have a url which contains a urlheader such as:
Blog/Details/Third-post
However, I am getting a url which is this:
Blog/Details/3?urlHeader=Third-post
what am I doing wrong?
My blog controller is as follows:
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);
}
and the route method is as follows:
routes.MapRoute(
"BlogDetail", // Route name
"Blog/Details/{urlHeader}", // URL with parameters
new { controller = "Blog", action = "Details" }, // Parameter defaults
new { urlHeader = "" } // Parameter constraints
);
and the link is as follows:
@Html.ActionLink(Model.Title , "Details", "Blog", new { id = Model.BlogID, urlHeader = Model.UrlHeader }, null)
You could have the following routes: