0

我正在开发一个 MVC 4 项目,该项目即使在一个简单的 GET 方法上也不断显示 ValidationMessage,该方法不进行复杂类型的验证或模型绑定:

//location/{locationId}/announcement
[HttpGet]
public ActionResult LocationMakeAnnouncement(int locationId)
{
    var pageViewModel = this.BuildLocationMakeAnnouncementViewModel(locationId);
    return View(pageViewModel);
}

唯一构建 ViewModel并且BuildLocationMakeAnnouncementViewModel不触及 ModelState。

然后在视图上我有:

<span class="errorArea">@Html.ValidationMessage("ProductText", " ", new { @class = "inputErrorIcon" })</span>

发出:

<span class="errorArea"><span class="field-validation-valid inputErrorIcon" data-valmsg-for="ProductText" data-valmsg-replace="false"> </span></span>

输出 ModelState 表明它没有任何错误

@ViewData.ModelState.Values.Any(x => x.Errors.Count >= 1)

没有错误时,为什么 ValidatioMessage 会输出?

有什么建议么?

4

2 回答 2

1

如果你想保持启用客户端验证,我有一个类似的问题ValidationSummary,但我相信这只是这些东西呈现的方式。您需要做的就是将“有效”内容的样式设置为display: none. 在您的情况下,这似乎是:

.field-validation-valid { display: none; }
于 2012-10-31T05:40:39.223 回答
-1

事实证明,如果您启用 ClientValidationEnabled 和 UnobtrusiveJavaScriptEnabled,就会出现这种情况。

所以将它们设置为 false 解决了我的问题:

<add key="ClientValidationEnabled" value="false" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />
于 2012-10-31T04:45:07.617 回答