2016-12-24 89 views
1

我跟随Shawn Wildermuth的MVC6优秀的Pluralsight教程,我一直在获取一个验证消息来显示整个模型。模型验证总结没有显示

这里的行动:

[HttpPost] 
public IActionResult Contact(ContactViewModel model) 
{ 
    if (model.Email.Contains("aol.com")) 
     ModelState.AddModelError("", "We don't support AOL addresses."); 
    if (ModelState.IsValid) 
    { 
     var toAddress = _config["MailSettings:ToAddress"]; 
     _mailService.SendMail(toAddress, model.Email, "Contact Page", model.Message); 
    } 

    return View(); 
} 

,当我提交表单,检测到“美国在线”的地址,并添加到预期的ModelState错误,然后IsValid失败,并返回View()

<h2>Contact Me</h2> 
<form method="post"> 
    <span asp-validation-summary="ModelOnly"></span> 

    <label asp-for="Name">Name</label> 
    <input asp-for="Name"/> 
    <span asp-validation-for="Name"></span> 

    <label asp-for="Email">Email</label> 
    <input asp-for="Email" type="email"/> 
    <span asp-validation-for="Email"></span> 

    <label asp-for="Message">Message</label> 
    <textarea asp-for="Message" cols="40" rows="4"></textarea> 
    <span asp-validation-for="Message"></span> 

    <div> 
     <input type="submit" value="Send Message"/> 
    </div> 
</form> 

不幸的是,DOM检查显示摘要的<span asp-validation-summary="ModelOnly"></span>仍为空。所有其他表单验证按预期工作。

对此提出建议?

回答

3

尝试从跨度变化

<span asp-validation-summary="All" class="text-danger"></span> 

要的div

<div asp-validation-summary="All" class="text-danger"></div> 

量程输出:

Span Output

DIV输出:

div output

+0

这奏效了 - 不知道为什么他没有这个问题的视频,但我很困惑,如何使用内联级别的元素作为容器。 –