为了保持我的模型验证干净,我想实现我自己的验证属性,比如PhoneNumberAttribute和EmailAttribute.其中一些可以有利地实现为继承的简单类RegularExpressionAttribute.
但是,我注意到这样做会破坏这些属性的客户端验证.我假设有某种类型的绑定在某处失败.
我能做些什么来让客户端验证工作?
代码示例:
public sealed class MailAddressAttribute : RegularExpressionAttribute
{
public MailAddressAttribute()
: base(@"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$")
{
}
}
Run Code Online (Sandbox Code Playgroud) regex asp.net asp.net-mvc client-side-validation data-annotations
我正在尝试对单选按钮列表进行必要的验证,以强制用户选择继续选项.验证确实有效,但它只在第一个单选按钮上输出元数据,它只标记带有输入验证错误类的第一个单选按钮.
例:
<p>@Html.RadioButtonFor(x => x.Choices, SomeEnum.OptionOne)</p>
<p>@Html.RadioButtonFor(x => x.Choices, SomeEnum.OptionTwo)</p>
Run Code Online (Sandbox Code Playgroud)
产生的HTML:
<p><input class="input-validation-error" data-val="true" data-val-required="required text" type="radio" name="Choices" value="OptionOne" /></p>
<p><input type="radio" name="Choices" value="OptionTwo" /></p>
Run Code Online (Sandbox Code Playgroud)
我希望两个单选按钮都能获得验证错误级别,否则可能会使用户选择的选项存在偏差.
我能做什么?
我目前参与了一个ASP.NET项目,该项目包含大约40个项目.我们正在克隆的Virtual PC环境中进行所有开发,因此所有开发人员都具有相同的设置.这一切都很好,管理依赖关系很容易,但构建解决方案的速度非常慢.Virtual PC只能使用一个CPU,因此我实际上只使用了一半的计算机资源.
从构建到完整的页面加载需要整整3分钟......随着项目的增长,它每天都在变得越来越糟糕.修复简单的事情开始花费很长时间并且个人而言,我一直在等待,因为我在计算机编译时无法真正工作.
有没有办法在多台计算机上分配我的构建以加快构建过程?
SSD会不会明显改善我的构建时间?
有没有其他方法可以加快构建速度?
注意:我尝试使用ngen预编译静态依赖项,但后来读到ASP.NET不支持ngen.我使用Visual Studio 2008,虚拟环境中没有防病毒软件.
我正在开发一个类似于网站应用程序的插件.由于要求,它将存在于与我没有源代码的主网站相同的物理路径和相同的应用程序池中.因此,它们共享相同的Web.config和其他一些依赖项.
我需要在应用程序启动时为第三方依赖项设置许可证,但我无法访问Global.asax背后的代码,因为该代码由其他公司拥有.
那么,是否有另一种方法可以将事件附加到Application Start而不涉及Global.asax,或者是我唯一的继承/扩展当前Global.asax的解决方案?
作为一个习惯于静态类型的开发人员,我通常让编译器告诉我代码是否正确,当然排除了逻辑缺陷.但是当重构PHP时,我发现很难知道我的代码是正确的.
某些方法或成员似乎总是有一些挥之不去的引用,这些方法或成员会被破坏并且直到运行时才显示出来.即使在Zend Studio中使用有限的重构支持,事情也会以某种方式被破坏.
由于语言本身的动态性,我理解这是一个难题.但有没有任何工具可以静态验证PHP代码,以便我知道它在运行之前是可以的吗?我不想再看到"Undefined property"错误消息.
我需要对日期字段进行用户验证,它应该采用yyyyMMdd格式,并且将来不应超过一年.我该怎么做呢?目前我只有一个粗糙的正则表达式,这是不够的.
function VerifyDate(source, args)
{
var regexp = /^([1-2]{1}[0-9]{1})\d{2}([0][1-9]|[1][0-2])([0][1-9]|[1-2][0-9]|[3][0-1])$/
var result = args.Value.match(regexp);
if(result) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
Run Code Online (Sandbox Code Playgroud) asp.net ×4
.net ×1
asp.net-mvc ×1
date ×1
global-asax ×1
javascript ×1
msbuild ×1
php ×1
refactoring ×1
regex ×1
validation ×1