我如何在ASP.NET MVC中创build一个友好的URL?
如何在ASP.NET MVC框架中生成友好的URL? 例如,我们有一个如下所示的URL:
HTTP://网站/目录/ BrowseByStyleLevel / 1
1是研究级别(在这种情况下更高)的Id浏览,但我想重新格式化的URL以同样的方式StackOverflow做到这一点。
例如,这两个url会带你到相同的地方:
https://stackoverflow.com/questions/119323/nested-for-loops-in-different-languages
https://stackoverflow.com/questions/119323/
编辑:友好的部分的url被称为一个slu </s> 。
有两个步骤来解决这个问题。 首先,创build一个新的路由或更改默认的路由来接受一个额外的参数:
routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}/{ignoreThisBit}", new { controller = "Home", action = "Index", id = "", ignoreThisBit = ""} // Parameter defaults )
现在你可以在你的URI的末尾input任何你想要的,应用程序将会忽略它。
当你渲染链接时,你需要添加“友好”的文字:
<%= Html.ActionLink("Link text", "ActionName", "ControllerName", new { id = 1234, ignoreThisBit="friendly-text-here" });
你在global.asax上有一个路由
routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = ""} // Parameter defaults )
你可以定义你自己的路线,如:
控制器是控制器文件夹内的cs类。
你可以定义你的ID – 用你select的名字。
系统会将值传递给你的actionResult方法。
你可以在这里阅读更多关于这个步骤: http : //www.asp.net/learn/mvc/tutorial-05-cs.aspx
这就是我在应用程序上实现了slu URL URL的方式。 注意:默认的Maproute不应该被改变,而且路由也会按照它们添加到路由列表的顺序进行处理。
routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); routes.MapRoute("Place", "{controller}/{action}/{id}/{slug}", new { controller = "Place", action = "Details", id = UrlParameter.Optional,slug="" });
- MVC Razor视图Intellisense在VS 2013/2015/2017中破发
- ASP.Net MVC – 资源无法find错误
- WebAPI中的DependencyResolver.SetResolver和HttpConfiguration.DependencyResolver之间有什么区别
- 发布JSON数据到ASP.NET MVC
- 在构build时dynamic连接和缩小JavaScript – ASP.NET MVC
- 如何在ASP.NET MVC 4应用程序中使用会话?
- LINQ to SQL和存储库模式
- Asp.Net MVC:为什么我的视图传递NULL模型回到我的控制器?
- 在ASP.NET MVC Razor视图中用<br />replace换行符