【问题标题】:Validation errors are always displayed始终显示验证错误
【发布时间】:2015-11-27 15:46:28
【问题描述】:

我有一个 MVC 5 应用程序。我正在尝试使用我的 viewmodel 属性应用验证。例如。我的字段是必需的。但是由于某种原因,在用户可以输入任何内容之前,最初会显示空字段上的错误。你能解释一下吗?

@Html.ValidationSummary(false, "Please fix the errors:", new { @class = "text-danger" })
<div class="form-group">
    @Html.LabelFor(model => model.FileToUpload, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.TextBox("FileToUpload", "", new { @type = "file", @class = "input-xlarge form-control" })
        @Html.ValidationMessageFor(model => model.FileToUpload, "*", new { @class = "text-danger" })
    </div>
</div>

...

public ActionResult Index()
{
    return View();
}

我仅将我的视图模型用于验证目的,因此它不会传递给视图。

【问题讨论】:

标签: asp.net-mvc validation


【解决方案1】:

正如我所评论的,一种解决方案是添加以下 css:

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

但另一种方法是检查您的视图中是否有错误然后显示:

@if (ViewData.ModelState.Any(x => x.Value.Errors.Any()))
{
    @Html.ValidationSummary(false, "Please fix the errors:", new { @class = "text-danger" })    
}

【讨论】:

  • 谢谢!非常好。
  • @Html.ValidationMessageFor() 总是显示,这对我有用: .field-validation-valid { display: none; }
猜你喜欢
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2020-02-09
  • 2014-06-19
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多