我正在使用ASP.NET MVC Razor C#with Attribute Routes
单击“编辑”时,在“类别”表单中。它打开了如下所示的URL:
http://localhost:38812/Category/Database%20Design
我正在尝试更改下面的网址
http://localhost:38812/Category/Database-Design
问题在于,当我去数据库搜索基于类别的详细信息时......由于没有名称为Database-Design的类别,因此不进行搜索。它以空间数据库设计的形式存在。
有没有办法不在网址中加入ID,所以我们也可以实现以下网址? :
答案 0 :(得分:2)
您应该在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
列
你不会担心用连字符代替什么 并且它都是可定制的。
答案 1 :(得分:0)
我认为您需要做的是解码网址。您可以使用
执行此操作string decodedUrl = Uri.UnescapeDataString(url)
这将取代%20并将其恢复原来的状态。
您可以在https://msdn.microsoft.com/en-us/library/system.uri.unescapedatastring(v=vs.110).aspx
了解更多相关信息