URL路由需要/ Home / Page?page = 1而不是/ Home / Page / 1

时间:2016-02-18 03:44:33

标签: c# asp.net-mvc url seo maproute

我正在尝试构建我的ASP.NET MVC 4.5项目以使用搜索引擎友好的URL。我正在使用以下路线映射。

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}/{title}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, title = UrlParameter.Optional }
);

目的是为了创建这样的URL:

  

Mysite.com/Home/Page/1/this-title-bit-is-just-for-show

但它失败了,我必须使用这样的网址:

  

Mysite.com/Home/Page?page=1

如果重要,此链接指向的控制器操作如下:

public ActionResult Page(int page)
{
    PostModel pm = new PostModel(page);
    return View(pm);
}

我正在生成这样的网址:

<a href="@Url.Action("Page", "Home", new { page = 1 })">1</a>

有人可以告诉我哪里出错了吗?

1 个答案:

答案 0 :(得分:2)

而不是

<a href="@Url.Action("Page", "Home", new { page = 1 })">1</a>

使用

<a href="@Url.Action("Page", "Home", new { id = 1 })">1</a> //instead of page use id here

并更改操作方法,如下所示: -

public ActionResult Page(int id) //instead of page use id here
{
    PostModel pm = new PostModel(id);
    return View(pm);
}