【发布时间】:2011-02-02 03:11:26
【问题描述】:
我在 Asp.Net MVC 中编程已经有一段时间了,为了稍微超越 .Net 世界,我最近开始学习 Python 和 Django。我很喜欢 Django,但我在 Asp.Net MVC 中缺少的一件事是从我的 url 到我的控制器操作的自动路由。
在 Asp.Net MVC 中,我可以使用这个单一的默认路由构建我的大部分应用程序:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
在 Django 中,我发现自己在 urls.py 中为我想要公开的每个视图添加了一个条目,这导致了比我在 Asp.Net MVC 中习惯的更多的 url 模式。
有没有办法在 Django 中创建单个 url 模式,以类似于 Asp.Net MVC 的方式处理“[Application]/view/[params]”?也许在主要网站级别?
【问题讨论】:
-
我想我在某处读到有可能但不建议这样做。我可以理解你想这样做(更少的工作;))但另一方面,如果你明确指定 URL 和视图,你会更加灵活(也在更改 URL 方面)。
-
我可以理解并同意将路由定义与类分开,但如果我 80% 的路由遵循相同的约定,那么为该约定设置一个 url 模式会很好。
-
有趣的是,我之前在 django 中开发过这个问题并迁移到 asp.net。我讨厌 asp.net 隐式路由配置,因为我觉得我无法控制它......我真的很想做路由 django 风格:)
-
@gardarh,你有没有找到一种更像 django 的 .NET MVC 路由方法?我找到的最接近的是MvcCodeRouting,但仍然不如 django urlconf 简单优雅。
-
@RonSmith 不是真的,只是在指定路线时更具体,即不要使用 {controller} 标记。不是一个非常漂亮的解决方案imo,请告诉您是否找到更好的解决方案。
标签: asp.net-mvc django