什么时候MVC“漂亮的网址”结束,“丑陋的网址”开始?

时间:2010-08-19 14:52:07

标签: url url-routing uri

我正在使用ASP.NET MVC,但这确实适用于任何MVC框架。我知道MVC框架的一个好处是构建“漂亮”的URL。到目前为止,我保持我的小应用程序简单,大多数路由使用正常的约定:controller / action / id。但是,现在我已经创建了一个简单的页面,它将根据给定的查询字符串参数重定向到一个动作:

mysite.com/visitors/lookup?的 signAction =登入

mysite.com/visitors/lookup?signAction=signout

来自Web Forms,这种结构很自然而且很常见,但我担心我没有意识到这里的漂亮网址带来的好处。

对于我的示例,最好是创建自定义路由还是保持原样?自定义路由结束和查询字符串参数何时开始的一般经验法则是什么?

5 个答案:

答案 0 :(得分:4)

首先,我不会说这与MVC有任何关系。漂亮的网址可以/应该在任何地方使用。

其次,这实际上取决于你如何使用你的网址。但最重要的是,“漂亮的网址”不是查询参数的替代品。

例如,您的

mysite.com/visitors/lookup?signAction=signin

可以/应该?很容易翻译成

mysite.com/signin

基本上,漂亮网址背后的想法有两个。

他们的主要目的是他们中的许多人应该是可记忆的。漂亮的网址创意源于亚马逊的2000多个角色怪物。

他们的次要目的是SEO。然而,到目前为止,许多开发人员已经开始忘记这一点,并将各种垃圾放回到他们的网址中。

但我想说的是

mysite.com/articles/page/2

基本上不比

漂亮
mysite.com/articles?page=2

答案 1 :(得分:2)

如果您正确设置路线,可以是:

mysite.com/visitors/lookup/signin

或只是

mysite.com/visitors/signin

你必须决定使用它的程度,但我认为你可以做得比你的例子更好,而不会对路由结构产生太多影响。

答案 2 :(得分:1)

老实说,我想说这取决于你的偏好,这是关于它的好事。在制作任何东西时都没有经验法则。好吧,也许在性能方面,但在这种情况下,不用担心性能变化。就个人而言,我会说创建一条新路线。它并不太难,就像你说的那样,它是漂亮的URL。另外,要考虑的另一件事可能是隐藏价值。我不完全确定你的代码布局,但是如果你有一个隐藏的signaction输入并且值发生了变化,那么你可以做一个Request.Form [“signaction”]来获取值。希望这会有所帮助。

答案 3 :(得分:0)

我们将使用/session/new =>登录表单/session/create POST /session/destroy删除注销

答案 4 :(得分:0)

网址路由到“漂亮网址”的主要优势是搜索引擎优化和永久链接内容。对于注销操作,这些都不适用。在这种情况下,这只是一个美学决定。