在我的自定义ValidationSummary扩展中定制HTML
本文关键字:HTML 扩展 我的 自定义 ValidationSummary | 更新日期: 2023-09-27 18:04:15
到目前为止,它是工作的,但我似乎不能确定在正确的顺序需要的HTML。
对于每个不同的错误,我需要返回以下HTML:
<div class="style-msg errormsg">
<div class="sb-msg">
<i class="icon-remove"></i>
Error Text
</div>
</div>
下面是扩展方法:
public static string MyValidationSummary(this HtmlHelper helper, string validationMessage = "")
{
string retVal = "";
if (helper.ViewData.ModelState.IsValid)
return "";
retVal += "<div class='style-msg errormsg'><div class='sb-msg'><i class='icon-remove'></i>";
if (!String.IsNullOrEmpty(validationMessage))
retVal += helper.Encode(validationMessage);
foreach (var key in helper.ViewData.ModelState.Keys)
{
foreach (var err in helper.ViewData.ModelState[key].Errors)
retVal += helper.Encode(err.ErrorMessage);
}
retVal += "</div></div>";
return retVal.ToString();
}
}
最后是我如何在实际的网页上调用它
@Html.Raw(Html.MyValidationSummary())
奖金问:在这种情况下使用HTML.Raw
安全吗?
在摆弄了一下之后,我得出了这个结论。我稍微改变了一下HTML,因为我想使用Bootstrap警告框。
public static string MyValidationSummary(this HtmlHelper helper, string validationMessage = "")
{
string retVal = "";
string errorList = "";
foreach (var key in helper.ViewData.ModelState.Keys)
{
retVal = "";
foreach (var err in helper.ViewData.ModelState[key].Errors)
{
retVal += "<div class='alert alert-danger'>";
retVal += "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>";
retVal += "<i class='icon-remove-sign'></i>";
retVal += helper.Encode(err.ErrorMessage);
retVal += "</div>";
errorList += retVal;
}
}
return errorList.ToString();
}