我已創建自定義的驗證屬性客戶端自定義與屬性validaton不起作用
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public sealed class ValidateDublicateNameAttribute : ValidationAttribute, IClientValidatable
{
private const string _defaultErrorMessage = "Library with title {0} is already exist";
private UnitOfWork unit = new UnitOfWork();
public ValidateDublicateNameAttribute()
: base(_defaultErrorMessage)
{
}
public override s
特林FormatErrorMessage(字符串名稱){ 回報 的String.Format(ErrorMessageString,姓名); }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
string valueAsString = value as string;
ValidationResult result = ValidationResult.Success;
if (String.IsNullOrEmpty(valueAsString))
{
if (unit.ResourceSrvc.GetLibraryByTitle(valueAsString) != null)
{
result = new ValidationResult(String.Format(_defaultErrorMessage,value));
}
}
else
{
result = new ValidationResult("Title cant be empty or null");
}
return result;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ErrorMessage = this.ErrorMessage,
ValidationType = "dublicatename",
};
yield return rule;
}
}
,並用它
public class ResourceLibraryModel
{
public Guid LibraryId { get; set; }
[Required]
[ValidateDublicateName(ErrorMessage="title cant dublicate")]
public string Title { get; set; }
}
在客戶端裝飾了我的模型我有
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$.validator.addMethod("dublicatename", function (value, element, params) {
alert("test");
});
});
</script>
我沒有任何驗證的參數,並沒有寫$ .validator。 unobtrusive.adapters.add(....)
服務器端驗證完美,但cli恩方不起作用。
任何想法?
,這是鑑於
@using (Ajax.BeginForm("CreateLibrary", "Resource", new AjaxOptions { OnSuccess = "RequestSucceeded"}))
{
@Html.ValidationSummary(true, "Account creation was unsuccessful. Please correct the errors and try again.")
<div>
@*<div style="margin-bottom:15px">
<label><b>Library information:</b></label>
</div>*@
<div class="editor-field">
@Html.TextBoxFor(m => m.Title, new { @class = "logon-field" })
@Html.ValidationMessageFor(m => m.Title)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.Title)
</div>
</div>
}
什麼是您的看法是什麼樣子? – link664
我編輯的問題,現在它包含在網絡配置的視圖 –