我已经在Google和Stack Overflow上进行了一些搜索,但无法找到答案。
我在视图中有以下内容
@if (!Html.ViewData.ModelState.IsValid)
{
@Html.ValidationSummary(true)<br />
}
我只对模型错误感兴趣,但如果发现属性错误,测试将返回true。如何测试模型错误?
我可能需要在此澄清一下,我想进行测试,以便在出现属性错误但没有模型错误时停止写出<br />
。
答案 0 :(得分:1)
如果你去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;
}