如何获得一个很好的URL,例如“ http://stackoverflow.com/questions/1074/asp-mvc”

问题描述 投票:3回答:3

有人可以帮助我吗?我正在ASP.NET MVC中进行一些测试。

我想将漂亮的URL作为stackoverflow.com路由系统来实现。

例如:stackoverflow.com/questions/1074/asp-mvcdomain.com/id/title

这是我的代码:

  1. 在Global.asax中]
  2. routes.MapRoute(null,
        "posts/{PostId}/{Title}",
        new { controller = "Posts", action = "Details", post = (string)null },
        new { PostId = @"\d+", Title = @"([A-Za-z0-9-]+)" }
    );
    
  1. 在视图中:
  2. <%= Html.ActionLink(Model.Title, "Details", new { Model.PostID, Model.Title})%>
    

使用这些代码,我得到的网址是http://localhost:53171/posts/Details?PostID=5&Title=Test-title

一个人可以建议我吗?

非常感谢。

有人可以帮助我吗?我正在ASP.NET MVC中进行一些测试。我想将漂亮的URL实现为stackoverflow.com路由系统。例如:stackoverflow.com/questions/1074/asp-mvc domain.com/id / ...

asp.net-mvc
3个回答
3
投票

不确定所有stackoverflow网址的含义,但是如果您想要一个干净的网址,例如:


1
投票

我认为您需要在帖子标题的路由中添加一些默认值...并确保它们相互映射。您似乎没有“ postId”和“ title”的默认值,但是对于不存在的“ post”路由值却没有默认值。


0
投票

您位于正确的路径上,但只需要将Controller ActionMethod参数的名称与Html.ActionLink中的对象路由值进行匹配。

© www.soinside.com 2019 - 2024. All rights reserved.