我的印象是使用这样的注释:
<Required()>
<DisplayName("Choose a Password:")>
<ValidatePasswordLength()>
<DataType(DataType.Password)>
Public Property Password As String
Run Code Online (Sandbox Code Playgroud)
在视图中使用时会创建一个蒙版字段:
<%: Html.TextBoxFor(Function(model) model.Password) %>
<%: Html.ValidationMessageFor(Function(model) model.Password) %>
Run Code Online (Sandbox Code Playgroud)
但是这是在没有type ="password"的情况下呈现的
什么是"DataType.Password",如果不是这个?
我有一个动态查询,太大了,无法放在这里.可以肯定地说,在它的当前形式中,它利用CLR过程根据传递的搜索参数的数量动态地构建连接,然后获取该结果并将其连接到更详细的表以带回对最终用户重要的属性.我已经将整个查询转换为LINQ to Entities,我发现它生成的SQL足以完成这项工作,无论是通过EF 6运行,查询超时.获取生成的SQL并在SSMS中运行它将在3秒或更短的时间内运行.我只能想象我的问题是参数嗅探.我已经尝试更新数据库中每个表的统计信息,但这还没有解决问题.
我的问题是:
我可以通过EF以某种方式嵌入像"OPTION RECOMPILE"这样的选项吗?
我们假设我有一个由3个其他ViewModel组成的ViewModel.一个包含项目列表,另一个包含具有[Required]属性的类的实例,然后包含另一个其他项的列表.
如果用户从两个列表中的任何一个列表中选择一个项目,我不希望第二个对象上的[Required]属性导致ModelState无效,因为如果用户选择其中一个项目,它们将不会需要使用[Required]属性填写表单.
我怎么解决这个问题?
我正在尝试使用静态RegEx.Replace方法进行简单的替换,如果在替换字符串中我有"$ 0.00"或某种衍生物,它会失败.
这是代码:
void Main()
{
try
{
string inputString = "[BEGIN-LOOP:DETAILS]this is what I want to replace[END-LOOP:DETAILS]";
string replacementString = "some text $0.00";
inputString = Regex.Replace(inputString, @"(\[BEGIN-LOOP:DETAILS\])(.*?)(\[END-LOOP:DETAILS\])", replacementString, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Console.WriteLine(inputString);
}
catch (Exception ex)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
失败的RegEx的输出是:
一些文字[BEGIN-LOOP:DETAILS]这就是我要替换的内容[END-LOOP:DETAILS] .00
它应该是
一些文字$ 0.00