未能替换反斜杠

时间:2015-04-28 13:19:56

标签: c# string replace

我有一个字符串进入一个表示域用户名的方法,来自razor视图,通过JS调用:

    <script type="text/javascript">
        function editResource() {
...
            var user = '@Context.User.Identity.Name';
            $.post(url, ... skipped
            });
        }
    </script>

控制器:

public string SaveDeprecatedResource(string resource, string newResource, string description, string user, string ticket)
    {
        user = user.Replace("\\", "\\\\"); // how do I replace with double backslash?

来到控制器的用户等于&#34; DOMAIN \ v-user&#34;

用户对象是字符串:

user.GetType()
{Name = "String" FullName = "System.String"}
    [System.RuntimeType]: {Name = "String" FullName = "System.String"}

我需要插入它将它插入db(LINQ),但它吃反斜杠。基本上我需要用\替换\\,我没有这样做。我究竟做错了什么?

user.Contains(@"\")
false
user.Contains(@"\\")
false
user.Contains("\\")
false
user.Contains('\\')
false

编辑,因此反斜杠不是反斜杠,但是\v被视为垂直制表符。无论如何,反斜杠后可以是字母表中的任何字母。我如何普遍处理它?

1 个答案:

答案 0 :(得分:2)

将数据保存到数据库时,需要转义反斜杠。

user = @"DOMAIN\user"