【问题标题】:asp.net MVC and RESTful routing, rails-style. Is it possible?asp.net MVC 和 RESTful 路由,rails 样式。可能吗?
【发布时间】:2010-12-12 18:04:18
【问题描述】:

有什么方法可以让 MVC 中的路由真正安静地工作,就像 rails dudes 那样?我说的是像/bands/metallica/albums/killemall/track/4这样的嵌套网址

我发现唯一有用的库是 Steve Hodgkiss 的 Restful routing。将我的整个项目的路由建立在这个人的宠物项目上似乎有点冒险。

你们 MVC 的老手们怎么说?

【问题讨论】:

  • 让 MVC“老手”在身边不是很快吗? :)
  • 是的,当然是。但在软件工程领域,一切皆有可能!
  • 嗯,他们正在招聘需要 3 年 C# 经验的职位。 2002 年。我认为这限制了安德斯的招聘范围。 . .
  • 如果它是开源的(它是)并且它可以工作(它确实)有什么问题?

标签: asp.net-mvc rest url-routing asp.net-mvc-routing


【解决方案1】:

当然:

routes.MapRoute("IwannaBeLikeTheCoolRailsKids",
                "bands/{bandName}/albums/{albumName}/tracks/{trackNumber}",
                new { controller = "Bands",
                action = "ByTrack" 
               });

然后在你的控制器中:

public ActionResult ByTrack(string bandName, string albumName, int trackNumber)

简单的豌豆。

【讨论】:

  • 伙计,你到处写 alblum! :)
  • 你会如何处理这个网址? /bands/metallica/albums/killemall/track/the-four-horsemen
  • 不丢失 int track url 功能
  • 拼写不是我的强项。至于第二部分,没有办法从 URL 中删除曲目编号并仍将其用作参数。相反,您需要做的是制作它,以便您可以通过 url slug 字段找到歌曲。
  • 我的想法是任何手动更改 url 以尝试查找结果的人都应该得到 404,如果那里什么都没有。为什么要编写几个小时的额外代码来适应那些懒得通过你的 UI 来找到他们正在寻找的东西的人。我同意,url 需要对用户友好,但不要为那些在 UI 之外修改你的 url 的人打断你的思考和编码路线。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 2011-04-09
  • 2023-03-08
  • 2011-12-28
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多