有人可以帮助我吗?我正在ASP.NET MVC中进行一些测试。
我想将漂亮的URL作为stackoverflow.com路由系统来实现。
例如:stackoverflow.com/questions/1074/asp-mvcdomain.com/id/title
这是我的代码:
routes.MapRoute(null,
"posts/{PostId}/{Title}",
new { controller = "Posts", action = "Details", post = (string)null },
new { PostId = @"\d+", Title = @"([A-Za-z0-9-]+)" }
);
<%= 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 / ...
不确定所有stackoverflow网址的含义,但是如果您想要一个干净的网址,例如:
我认为您需要在帖子标题的路由中添加一些默认值...并确保它们相互映射。您似乎没有“ postId”和“ title”的默认值,但是对于不存在的“ post”路由值却没有默认值。
您位于正确的路径上,但只需要将Controller ActionMethod参数的名称与Html.ActionLink中的对象路由值进行匹配。