在我的自定义ValidationSummary扩展中自定义HTML [英] Customizing HTML in my custom ValidationSummary extension

查看:69
本文介绍了在我的自定义ValidationSummary扩展中自定义HTML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

到目前为止,它是可行的,但是我似乎无法按照所需的正确顺序确定HTML.

So far it is working, but I can't seem to nail down the HTML in the correct order needed.

对于每个不同的错误,我需要返回此HTML:

For every different error I need this HTML returned:

<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();
        }
    }

最后,这就是我在实际网页上的称呼方式.

And finally here is how I call it on the actual webpage.

@Html.Raw(Html.MyValidationSummary())

奖励Q:在这种情况下使用 HTML.Raw 是否安全?

BONUS Q: Is using HTML.Raw safe in this instance?

推荐答案

玩了一点之后,我得出了这个结论.我做了一些更改,因为我想使用Bootstrap警报框.

After playing around with it a bit I came to this conclusion. I changed the HTML a bit because I wanted to use the Bootstrap alert boxes.

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();
}

这篇关于在我的自定义ValidationSummary扩展中自定义HTML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆