我有一个字符串进入一个表示域用户名的方法,来自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
被视为垂直制表符。无论如何,反斜杠后可以是字母表中的任何字母。我如何普遍处理它?
答案 0 :(得分:2)
将数据保存到数据库时,需要转义反斜杠。
user = @"DOMAIN\user"