我正在使用ASP.NET MVC 3 + FLUENT VALIDATION + NINJECT
我有模型X,该模型的规则是这样的:
RuleFor(c => c.FirstName).NotEmpty();
RuleFor(c => c.LastName).NotEmpty();
Run Code Online (Sandbox Code Playgroud)
我发现了一个奇怪的东西,引擎将验证属性放在所有隐藏元素和下拉列表,单选按钮等上.我没有在该模型的验证配置中指定这个,所以我猜它是默认的. ..
<input type="hidden" value="1" name="Id" id="Id" data-val-required="&#39;Id&#39; must not be empty." data-val-number="The field Id must be a number." data-val="true">
Run Code Online (Sandbox Code Playgroud)
验证有效,因为隐藏元素总是有值,但我有单选按钮的问题.例如,如果我不想在默认情况下总是选择一个单选按钮但是为空,如果我想在该项上放置验证规则,则渲染会将默认验证属性放在我的规则之上,因此它会搞砸和验证不能正常工作......
任何人都有类似的问题或者对此有所了解,或者我是否必须自行查看ASP.NET MVC源代码?:)
半懒惰和按推迟最小的编码器
编辑:
我尝试从这个链接提出解决方案:
流畅的验证.错误:不显眼的客户端验证规则中的验证类型名称必须是唯一的
但无论AddImplicitRequiredAttribute设置如何,asp.net mvc都会在每个字段上发出必需的属性...
我在Rails 3.1.0中使用client_side_validations gem.我一直在尝试使用它来验证通过javascript小部件设置的隐藏字段.根据我在gem的github页面上读到的内容,gem故意不会验证隐藏字段,因为用户无法更正这些字段.我没有成功尝试覆盖此行为.
有没有办法在不修改client_side_validations代码的情况下覆盖特定字段的此行为(除了安装gem时生成的init内容)?
我现在的方法是对gem中的validateForm函数稍作修改.当它查找要验证的字段时,只会抓取可见的元素:
form.find(':input:enabled:visible[data-validate]').each(function()
Run Code Online (Sandbox Code Playgroud)
所以我改变了这个:
form.find(':input:enabled[data-validate]').each(function()
Run Code Online (Sandbox Code Playgroud)
这似乎有效.有没有更好的办法?
当用户纠正错误时,我无法重新验证隐藏字段.
我正在尝试将gem添加client_side_validations到我的应用程序中.如果我去类似的东西controller/new,它的工作非常好,但是,在一个自举模式中,它什么都不做.
我检查了HTML并且没有添加data-validate属性.我该怎么做才能解决这个问题?
我的模型类包含所需的查找值,这是一个基于查找的记录:
[Required]
[DisplayName("Business Unit")]
public string value { get; set; }
[Required] //not working on client side?
[DisplayName("Business Group")]
public int id_businessgroup { get; set; }
Run Code Online (Sandbox Code Playgroud)
视图:
<div class="editor-label">
@Html.LabelFor(model => model.value)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.value)
@Html.ValidationMessageFor(model => model.value)
</div>
<div class="editor-label">
@Html.LabelFor(x=>x.BusinessGroup.value)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.id_businessgroup, new SelectList(ViewBag.BusinessGroups,"id","value"),"Please select group from list...")
@Html.ValidationMessageFor(x => x.id_businessgroup)
</div>
@section scripts{
@Html.Partial("ScriptUseChosen")
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Create()
{
ViewBag.BusinessGroups = DB.BusinessGroups.Where(x => x.is_active).OrderBy(x => x.value).ToList();
return View();
} …Run Code Online (Sandbox Code Playgroud) validation asp.net-mvc client-side-validation html.dropdownlistfor jquery-chosen
我有一个网站,用户通过注册码扩展他们的产品试用版.他们从电子邮件中单击链接(带有URL中的键),访问此站点并显示带有注册码的灯箱.我目前正在使用HTML显示注册码并将其隐藏在CSS中.一旦我检查以确保URL具有正确的密钥与javascript,我显示注册码.但是,这意味着任何人都可以只在页面上查看源代码并复制注册码.有没有办法加密代码,以便它不会出现在视图源中,然后如果URL具有正确的密钥则解密它?这是每个产品的一个代码,而不是每个用户,因此我不必进行任何服务器端身份验证.
<div>
<span id="mobile-valid">
<i class="fa fa-check"></i>
Valid Mobile No
</span>
<span id="mobile-invalid" >
Invalid mobile No
</span>
</div>
<div>
Mobile No
</div>
<div>
<input id="mobile-num" type="text"/>
</div>Run Code Online (Sandbox Code Playgroud)
如何对10位手机号码进行验证使用jQuery Ajax?只允许使用数字或字母数字字符.所以如何使用jquery Ajax进行验证.我想在上面的输入框中显示无效的电子邮件.(不要想要显示警报)
我想在codeigniter中使用jquery提交之前验证一个,但我很困惑如何在提交之前验证表单.我知道codeigniter中的验证类,但我想在前端验证一个表单.
asp.net-mvc ×2
javascript ×2
jquery ×2
codeigniter ×1
encryption ×1
forms ×1
html5 ×1
obfuscation ×1
validation ×1