我正在使用ASP.NET MVC Razor C#和属性路由。
在“类别”表单中单击“编辑”。它像下面这样打开Url:
http://localhost:38812/Category/Database%20Design
我正试图像下面这样更改Url
http://localhost:38812/Category/Database-Design
这里的问题是,当我去数据库搜索基于类别的details..it不搜索,因为没有一个类别的名称数据库-设计。它以带空间的数据库设计的形式存在。
是否有任何方法不将Id包括在Url中,这样我们也可以实现以下Url?:
http://localhost:38812/Category/Database-Design
发布于 2015-09-16 03:17:38
应该在您的Sanitized表中创建一个额外的列( Category )
如下所示
ID | Name | Sanitized
---------------------------------------
1 | Database Design | database-design
2 | ABC-DEF_HIJ | abc-def-hij
3 | !Hello World! | hello-world
4 | happy~~feet | happy-feet通过这样做,Url和数据库查询应该使用Sanitized列
您不会担心用连字符替换什么,这都是可定制的。
发布于 2015-09-16 05:08:25
我认为你需要做的是解码Url。您可以通过使用
string decodedUrl = Uri.UnescapeDataString(url)它将替换%20并将其返回到原来的状态。
您可以在这里读到更多关于这个的https://msdn.microsoft.com/en-us/library/system.uri.unescapedatastring(v=vs.110).aspx。
https://stackoverflow.com/questions/32595639
复制相似问题