我在 Google 和 Stack Overflow 上进行了一些搜索,但找不到这个问题的答案。
我认为有以下几点
@if (!Html.ViewData.ModelState.IsValid)
{
@Html.ValidationSummary(true)<br />
}
我只对模型错误感兴趣,但如果发现属性错误,测试将返回 true。如何仅测试模型错误?
<br />
我可能需要在这里澄清一下,当有属性错误但没有模型错误时,我想做测试以停止被写出。
我在 Google 和 Stack Overflow 上进行了一些搜索,但找不到这个问题的答案。
我认为有以下几点
@if (!Html.ViewData.ModelState.IsValid)
{
@Html.ValidationSummary(true)<br />
}
我只对模型错误感兴趣,但如果发现属性错误,测试将返回 true。如何仅测试模型错误?
<br />
我可能需要在这里澄清一下,当有属性错误但没有模型错误时,我想做测试以停止被写出。
如果你去 ValidationSummary 的来源,你可以找到
IEnumerable<ModelState> modelStates = null;
if (excludePropertyErrors) {
ModelState ms;
htmlHelper.ViewData.ModelState.TryGetValue(htmlHelper.ViewData.TemplateInfo.HtmlFieldPrefix, out ms);
if (ms != null) {
modelStates = new ModelState[] { ms };
}
}
else {
modelStates = htmlHelper.ViewData.ModelState.Values;
}
所以我认为你可以制作这样的方法
public static bool ModelStateHasModelErrors(this HtmlHelper htmlHelper) {
ModelState ms;
htmlHelper.ViewData.ModelState.TryGetValue(htmlHelper.ViewData.TemplateInfo.HtmlFieldPrefix, out ms);
return ms != null;
}