C# MVC Razor中用连字符指向{replace}@space的Url
我正在使用ASP.NET MVC Razor C#和属性路由 在我的类别窗体中单击“编辑”。它会打开Url,如下所示: 我正在尝试更改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! |
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:先生,我刚刚修改了查询标题,现在我们可以看到连字符和一些特殊字符。这里的问题是:如果类别名称已经包含连字符和其他特殊字符怎么办。我如何管理这些?投票通过并被接受。很好的建议。谢谢。