[英]How do I validate a HiddenField using MVC3 Razor & Unobtrusive jQuery validation?
我有一个类似于以下的模型
public class TaskModel
{
public int UserId { get; set; }
public int CustomerId { get; set; }
public string CustomerDescription { get; set; }
/* Snip */
}
如何添加验证以确保在客户端表示CustomerId
的隐藏字段大于零?
@Html.LabelFor(x => x.CustomerId)
@Html.HiddenFor(x => x.CustomerId)
<label id="customerName" class="description">
@Model.CustomerName
</label>
只是为了解释上面发生了什么; 我使用弹出窗口从列表中选择一个客户,然后使用客户的ID填充隐藏字段,并将标签说明更新为该ID所代表的客户。 我这样做是为了避免不必要的发布和数据库调用。
我不想发布表单数据来确定ID是否大于0。是否有一种简单的方法将其作为属性添加到模型并由客户端处理? 我已经编写了以下Validation属性,但我不知道如何使它在客户端也可以正常工作。
public class ValidIDAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null)
{
return false;
}
else
{
if (value.GetType() == typeof(int))
{
return (int)value > 0;
}
else if (value.GetType() == typeof(Guid))
{
return (Guid)value != Guid.Empty;
}
return false;
}
}
}
您可以使用内置的Range
属性:
[Range(0, 99999)]
public int UserId { get; set; }
这包括不打扰的客户端验证。
要创建自定义客户端验证器,请参阅本文 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.