我正在使用ASP.NET MVC,但这确实适用于任何MVC框架。我知道MVC框架的一个好处是构建“漂亮”的URL。到目前为止,我保持我的小应用程序简单,大多数路由使用正常的约定:controller / action / id。但是,现在我已经创建了一个简单的页面,它将根据给定的查询字符串参数重定向到一个动作:
mysite.com/visitors/lookup?的 signAction =登入
或
mysite.com/visitors/lookup?signAction=signout
来自Web Forms,这种结构很自然而且很常见,但我担心我没有意识到这里的漂亮网址带来的好处。
对于我的示例,最好是创建自定义路由还是保持原样?自定义路由结束和查询字符串参数何时开始的一般经验法则是什么?
答案 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)
网址路由到“漂亮网址”的主要优势是搜索引擎优化和永久链接内容。对于注销操作,这些都不适用。在这种情况下,这只是一个美学决定。