Luk*_*uke 3 .net validation asp.net-mvc
我想减少以下代码.以下代码有效,但不是很整洁等.
<label for="Name">Name:</label><%= Html.TextBox("Name")%><%
if (!string.IsNullOrEmpty(Html.ValidationMessage("Name"))) {
string Error = HtmlRemoval.StripTags(Html.ValidationMessage("Name")); %>
<img src="Error.gif" alt="Error" title="<%= Error %>" /><%
}
%>
Run Code Online (Sandbox Code Playgroud)
我已经读过我需要扩展Html帮助器,以便我可以返回一个图像而不是包含默认元素和文本错误的文本.
我似乎无法找到关于如何实现这一目标的任何文章或一般性建议.我仍然是ASP.NET MVC的新手.任何建议将不胜感激.
Dav*_*enn 13
您可以扩展HtmlHelper,如:
public static class CustomHtmlHelper {
public static string ValidationImage(this HtmlHelper helper, string name) {
if (helper.ViewData.ModelState[name] == null || helper.ViewData.ModelState[name].Errors == null) {
return String.Empty;
}
TagBuilder tag = new TagBuilder("img");
tag.Attributes.Add("src", "Error.gif");
tag.Attributes.Add("alt", "Error");
tag.Attributes.Add("title", helper.ViewData.ModelState[name].Errors[0].ErrorMessage);
return tag.ToString(TagRenderMode.SelfClosing);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您的页面中导入包含扩展方法的类
<%@ Import Namespace="CustomHtmlHelperNamespace" %>
Run Code Online (Sandbox Code Playgroud)
然后将以下内容添加到您的页面:
<label for="Name">Name:</label>
<%= Html.TextBox("Name")%>
<% Html.ValidationImage("Name") %>
Run Code Online (Sandbox Code Playgroud)
欲了解更多关于扩展的HtmlHelper尝试在这里,但基本上这个扩展的HtmlHelper,检查的ViewState有关在名称解析("名称"你的情况)的值错误,如果它包含一个错误生成需要的渲染图像的HTML.图像的title属性将包含字段"Name"的验证消息
| 归档时间: |
|
| 查看次数: |
7345 次 |
| 最近记录: |