在MVC-Razor中使用连字符{替换}@空格

本文关键字:替换 空格 连字符 MVC-Razor | 更新日期: 2023-09-27 18:13:04

我使用的是ASP。NET MVC Razor c#与属性路由

在我的分类表单中,当我点击编辑。它像下面这样打开Url:

http://localhost: 38812/类别/数据库% 20设计>

试图改变Url如下

http://localhost: 38812/类别/数据库设计>

里的问题是,当我去数据库搜索基于类别的详细信息时,它不搜索,因为没有名为database - design的类别。它以数据库设计的形式存在。

有没有办法不包括Url中的Id,所以我们也可以实现下面的Url?:

http://localhost: 38812/类别/数据库设计

在MVC-Razor中使用连字符{替换}@空格

您应该在Category表中创建一个额外的列(Sanitized)

就像

下面
 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

你不必担心用连字符替换什么而且都是可定制的

我认为你需要做的是解码Url。可以使用

string decodedUrl = Uri.UnescapeDataString(url)

这将替换%20并将其返回到初始状态。

您可以在这里阅读更多信息https://msdn.microsoft.com/en-us/library/system.uri.unescapedatastring(v=vs.110).aspx