ValidationMessage是否显示在初始GET方法(ValidationMessage is

2019-10-29 04:46发布

我工作的MVC 4项目,是不断显示即使在,做任何复杂类型的绑定验证或模型的简单GET方法ValidationMessage:

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

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输出的时候有没有错误?

有什么建议么?

Answer 1:

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

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


Answer 2:

原来,这是行为,如果您启用ClientValidationEnabled和UnobtrusiveJavaScriptEnabled。

所以他们设置为false固定我的问题:

<add key="ClientValidationEnabled" value="false" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />


文章来源: ValidationMessage is showing on initial GET method