我已经读到我需要扩展 Html 帮助程序,以便我可以返回图像而不是包含默认元素和文本错误的文本。 我-6ren">
gpt4 book ai didi

.net - 如何扩展 Html.ValidationMessage 以便我可以包含图像作为错误?

转载 作者:行者123 更新时间:2023-12-01 07:12:12 26 4
gpt4 key购买 nike

我想减少以下代码。下面的代码有效,但它不是很整洁等。

    <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 %>" /><%
}
%>

我已经读到我需要扩展 Html 帮助程序,以便我可以返回图像而不是包含默认元素和文本错误的文本。

我似乎找不到任何关于如何实现这一目标的文章或一般建议。我对 ASP.NET MVC 还是很陌生。任何建议将不胜感激。

最佳答案

您可以像这样扩展 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);
}

}

然后在您的页面中导入包含扩展方法的类
<%@ Import Namespace="CustomHtmlHelperNamespace" %>

然后将以下内容添加到您的页面:
<label for="Name">Name:</label>
<%= Html.TextBox("Name")%>
<% Html.ValidationImage("Name") %>

有关扩展 HtmlHelper 的更多信息,请尝试 here但基本上这扩展了 HtmlHelper,检查 ViewState 中解析的值是否存在错误(在您的情况下为“Name”),如果它包含错误,则会生成呈现图像所需的 HTML。图像的标题属性将包含字段“名称”的验证消息

关于.net - 如何扩展 Html.ValidationMessage 以便我可以包含图像作为错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1265857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com