작동하지 않는 속성을 validaton 내가 지정 유효성 검사가 FormatErrorMessage에게 (캐릭터 이름) { 반환 및 String.format (ErrorMessageString, 이름) 트링 클라이언트 측면은 사용자 정의
[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
속성 만들었습니다; }
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; }
}
를 사용하여 내 모델을 장식 한 내가하지 유효성 검사 매개 변수를 가지고 $ .validator를 작성하지 않은
<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>
있습니다. unobtrusive.adapters.add (....)
서버 측 유효성 검사가 완벽하게 작동하지만 cli 쪽은 작동하지 않습니다.
아이디어가 있으십니까?
이 나는 문제가 jquery.validate.min.js
당신의 자바 스크립트 코드 후로드해야한다는 생각도
@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
질문을 편집했는데 이제는 웹 설정에 –