Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC Razor中用连字符指向{replace}@space的Url_C#_Asp.net Mvc 3_Asp.net Mvc 4_C# 4.0 - Fatal编程技术网

C# MVC Razor中用连字符指向{replace}@space的Url

C# MVC Razor中用连字符指向{replace}@space的Url,c#,asp.net-mvc-3,asp.net-mvc-4,c#-4.0,C#,Asp.net Mvc 3,Asp.net Mvc 4,C# 4.0,我正在使用ASP.NET MVC Razor C#和属性路由 在我的类别窗体中单击“编辑”。它会打开Url,如下所示: 我正在尝试更改Url,如下所示 ID | Name | Sanitized --------------------------------------- 1 | Database Design | database-design 2 | ABC-DEF_HIJ | abc-def-hij 3 | !Hello World! |

我正在使用ASP.NET MVC Razor C#和属性路由

在我的类别窗体中单击“编辑”。它会打开Url,如下所示:

我正在尝试更改Url,如下所示

 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

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

有没有办法不在Url中包含Id,这样我们也可以实现以下Url


您应该在
类别
表中创建一个额外的列(
已消毒

像下面这样

 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并使其恢复到原来的状态


您可以在此处阅读有关此的更多信息

有什么问题?在控制器方法中,使用
string.Replace()
将连字符替换为空格,并使用搜索结果parameter@StephenMuecke:先生,我刚刚修改了查询标题,现在我们可以看到连字符和一些特殊字符。这里的问题是:如果类别名称已经包含连字符和其他特殊字符怎么办。我如何管理这些?投票通过并被接受。很好的建议。谢谢。