mvc3 응용 프로그램에서 작업 중이며 사용자 정의 validationMessage를 작성하여 간단한 필드의 유효성을 검사했습니다. 내가 사용하는 경우사용자 정의 Html.ValidationMessageFor가 클라이언트 측에서 작동하지 않습니다.
public static MvcHtmlString ValidationCustomFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
string propertyName = ExpressionHelper.GetExpressionText(expression);
string name = helper.AttributeEncode(helper.ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName));
if (helper.ViewData.ModelState[name] == null ||
helper.ViewData.ModelState[name].Errors == null ||
helper.ViewData.ModelState[name].Errors.Count == 0)
{
return MvcHtmlString.Empty;
}
StringBuilder htmlValidation = new StringBuilder();
htmlValidation.AppendLine("<div>");
htmlValidation.AppendLine("<table>");
htmlValidation.AppendLine("<tr>");
htmlValidation.AppendLine("<td><img src='/Content/Imgages/Error.jpg'></td>");
htmlValidation.AppendLine("</tr>");
htmlValidation.AppendLine("<tr>");
htmlValidation.AppendFormat("<td>{0}</td>", name);
htmlValidation.AppendLine("</tr>");
htmlValidation.AppendLine("<tr>");
htmlValidation.AppendFormat("<td>{0}</td>", helper.ViewData.ModelState[name].Errors[0].ErrorMessage);
htmlValidation.AppendLine("</tr>");
htmlValidation.AppendLine("</table>");
htmlValidation.AppendLine("</div>");
return MvcHtmlString.Create(htmlValidation.ToString());
}
이 잘 작동 :
@Html.ValidationMessageCustomFor(model => model.FirstName)
이 내 사용자 지정 유효성 검사 코드입니다 :이 사용자 정의 validationMessage는 대신 기본 범위의 제목과 메세지를 DIV를 보여, 난이 있습니다 서버 쪽 유효성 검사,하지만 내가 클라이언트 쪽 유효성 검사를 할 때 작동하지 않습니다.
기본값 인 Html.ValidationMessageFor는 클라이언트 측 유효성 검사에서 올바르게 작동하지만 내 사용자 지정 Html.ValidationMessageCustomFor는 작동하지 않습니다.
제발 도와 주실 수 있나요? 나는 내 사용자 지정 도우미를 수정
, 내가 "데이터 valmsg-은"스팬에 대한 atrib을 추가, 그것은 코드 :
public static MvcHtmlString ValidationCustomFor2<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
string propertyName = ExpressionHelper.GetExpressionText(expression);
string name = helper.AttributeEncode(helper.ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName));
if (helper.ViewData.ModelState[name] == null ||
helper.ViewData.ModelState[name].Errors == null ||
helper.ViewData.ModelState[name].Errors.Count == 0)
{
return MvcHtmlString.Empty;
}
TagBuilder tag = new TagBuilder("span");
tag.Attributes.Add("class", "field-validation-error");
tag.Attributes.Add("data-valmsg-for", name);
tag.Attributes.Add("data-valmsg-replace", "true");
var text = tag.ToString(TagRenderMode.StartTag);
text += "<b>My custom html</b>";
text += tag.ToString(TagRenderMode.EndTag);
return MvcHtmlString.Create(text);
}
그러나 그것이 내가 보이는, 표시되지 않습니다 클라이언트 쪽에서 뭔가를해야하지만, 나는 무엇을 모르나요? 어떤 아이디어라도 제발?
"ValidationMessageCustomFor"헬퍼 메서드는 무엇입니까? MVC3 프레임 워크에는 그러한 도우미 메서드가 없습니다. 그것은 당신이 코딩 한 도우미입니까? – Iravanchi
그래, 그것은 내 사용자 정의 도우미, 그것은 단순히 유효성 검사 메시지, 제목 및 이미지와 div를 보여, 그것은 서버 측 유효성 검사에 잘 작동하지만, 내가 클라이언트 측 그것을 작동하지 않으면, 이미지와 div 나타나지 않습니다. 문제가 무엇인지에 대해 나에게 몇 가지 아이디어를 제공해 주시겠습니까? –
문제가 있으면 사용자 지정 도우미 메서드와 관련이 있어야합니다. 코드 스 니펫을 게시하고 유효성 검사를 수행하는 방법을 게시 할 수 있습니까? – Iravanchi