簡體   English   中英

ASP.NET MVC3自定義驗證消息顯示

[英]ASP.NET MVC3 Custom Validation Message Display

ASP.NET MVC3中有一種方法可以自定義Html.ValidationMessageFor(...)方法的結果嗎? 例如,在錯誤文本旁邊添加圖像或類似...但我希望能夠更改圖像,無論驗證是否成功......

您可以看到錯誤包含在Css類中,您需要做的就是根據自己的意願使用該Css類。

默認MVC3包含在styles.css

/* Styles for validation helpers
-----------------------------------------------------------*/
.field-validation-error
{
    color: #ff0000;
}

.field-validation-valid
{
    display: none;
}

.input-validation-error
{
    border: 1px solid #ff0000;
    background-color: #ffeeee;
}

.validation-summary-errors
{
    font-weight: bold;
    color: #ff0000;
}

.validation-summary-valid
{
    display: none;
}

只需在那里添加你的圖像。

Yup U可以編寫你自己的擴展來這樣做

public static MvcHtmlString ValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
    {
        TagBuilder div = new TagBuilder("div");
        div.AddCssClass("aside");

        string modelName = ExpressionHelper.GetExpressionText(expression);
        ModelState state = htmlHelper.ViewData.ModelState[modelName];
        if (state != null)
            if ((state.Errors != null) && (state.Errors.Count > 0))
                div.AddCssClass("invalid");
            else 
                div.AddCssClass("valid");

        div.InnerHtml = htmlHelper.ValidationMessageFor(expression).ToString();
        return MvcHtmlString.Create(div.ToString());
    }

然后使用這樣的東西

@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name) 

最后,你需要為無效和旁邊的類定義ur css來定制錯誤的外觀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM