有条件地添加CSS类 - Asp.net

时间:2017-06-28 11:59:21

标签: c# css asp.net asp.net-mvc

我已经阅读了一些类似问题的帖子,但还没有找到任何好的解决方案。

我试图通过检查是否存在任何错误来在div中添加css类。如下所示

<div class="form-group m-t-20 @((@Html.ValidationMessage("Email") != null && @Html.ValidationMessage("Email").ToString() != "") ? "has-danger has-error" : "")">

但是当我执行inspect-element时,似乎@Html.ValidationMessage("Email")永远不会为空(因此总是添加has-danger has-error),即使Email没有验证消息,例如

@Html.ValidationMessage("Email")已翻译为<span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>

那么有没有办法检查是否存在某些错误然后添加一个css类?此外,我还会说,我不需要为这个小目的创建新类(.cs文件)。

PS:我正在使用Asp.net MVC。在后端,我添加了像ModelState.AddModelError("Email", "User already exists");

这样的错误

1 个答案:

答案 0 :(得分:3)

如果您想在View上检查模型中的错误,请检查ViewData.ModelState属性。

像这样:

@if (!ViewData.ModelState.IsValid && ViewData.ModelState["Email"].Errors.Count > 0))
{
   <span>your message<span/>
}

三元版本:

@((!ViewData.ModelState.IsValid && ViewData.ModelState["Email"].Errors.Count > 0)? "your message": String.Empty)