【发布时间】:2017-11-04 22:19:51
【问题描述】:
我有一个视图可以提取数据库中所有内容的列表,并且效果很好。然而,有一点信息我必须屏蔽,无论我尝试什么,我似乎都无法屏蔽它。
我想用 5 * 屏蔽它(不管字符串有多长)并显示最后 4 位数字。
你知道用我所拥有的最好的方法吗?
字符串示例:"SD46346" && "ADFF3342422" && "56-AS4566S"
控制器
vm.Accounts = accounts
.Select(s => new AdminViewModel.Account
{
Id= (s._ID.Length > 40 ? Encryptor.Decrypt(s._ID) : s._ID),
}).ToList();
return View(vm);
视图模型
public List<Account> Accounts { get; set;}
public class Account
{
public string Id { get; set; }
}
我尝试过的事情:“/xxxxx”应用程序中的服务器错误。 StartIndex 不能小于零。参数名称:startIndex –
public string DisplayID
{
get
{
return string.Format("*****{0}", Id.Substring(Id.Length - 4));
}
}
更新
这不是我的代码,而是数据库中丢失的旧数据,只有 2 个字符。
【问题讨论】:
-
发布字符串示例。可能可以使用正则表达式。
-
好的,我现在就这样做
-
带有负索引的子字符串只会抓取最后 n 个字符 - 您不需要字符串的长度。
标签: c# string viewmodel string-concatenation data-masking