我正熟悉ASP.Net-MVC,我试图完成我过去用webforms和其他功能完成的一些常见任务.关于我需要做的最常见的任务是创建SEO友好的URL,这在过去意味着做一些url重写以在目录路径中构建查询字符串.
例如:www.somesite.com/productid/1234/widget
而不是:www.somesite.com?productid=1234&name=widget
在ASP.Net-MVC中我用什么方法来完成这个?
我一直在四处寻找,而我所发现的就是这个,要么我不能正确理解,要么我没有真正回答我的问题:
Tom*_*idd 10
MVC代表"模型视图控制器",虽然这些概念不是您所要求的,但您通常可以像上面看到的那样轻松地连接URL
因此,例如默认情况下,URL的外观如下所示
http://www.somesite.com/controller/view/
Run Code Online (Sandbox Code Playgroud)
其中controller指的是项目中的控制器类,而view指的是控制器中的页面/方法组合.因此,例如,您可以编写视图以接收输入,并看起来如下所示
http://www.somesite.com/widget/productid/1234/
Run Code Online (Sandbox Code Playgroud)
现在至于SEO友好的 URL,这只是无用的糖.您创建控制器,以便在URL的末尾添加无害的cruft.
例如,您会注意到以下三种方法可以产生相同的结果:
Stack Overflow已创建其路由值,以便在问题ID之后出现的位不是真正必需的.
那么为什么要呢?增加Google PageRank.谷歌PageRank依赖于许多东西,其总和是秘密的,但人们注意到的一件事是,在所有其他条件相同的情况下,描述性文本URL的排名更高.这就是Stack Overflow在问题编号后使用该文本的原因.
在Global.asax中创建一个新路由来处理:
routes.MapRoute(
"productId", // Route name
"productId/{id}/{name}", // URL with parameters
new { controller = "Home", action = "productId", id = 1234, name = widget } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
Asp.Net MVC内置了路由,因此不需要Url Rewriter.
| 归档时间: |
|
| 查看次数: |
4678 次 |
| 最近记录: |