gpt4 book ai didi

c# - ValidationSummary 不显示错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:43 25 4
gpt4 key购买 nike

我无法让自定义错误出现在我的 ValidationSummary 中。 (如预期的那样正确显示属性级错误。)

Controller :

[HttpPost]
public async Task<ActionResult> Contact(ContactViewModel model)
{
if (ModelState.IsValid)
{
try
{
Mail mail = new Mail
{
ToAddress = "user@example.com",
Subject = model.Subject,
Body = model.Message
};
if (!string.IsNullOrWhiteSpace(model.Email))
mail.FromAddress = model.Email;

await mail.SendAsync();

return View("ContactConfirm");
}
catch (Exception ex)
{
ModelState.AddModelError(string.Empty, ex);
}
}
return View(model);
}

查看:

@Html.ValidationSummary(true, "", new { @class = "text-danger" })

我可以单步执行我的代码,看到行 ModelState.AddModelError(string.Empty, ex); 被执行,并且有一个有效的错误,但标记没有呈现任何错误消息。

注意:虽然页面上看不到任何内容,但验证摘要的基础标记如下:

<div class="validation-summary-errors text-danger">
<ul>
<li style="display:none"></li>
</ul>
</div>

谁能帮我弄清楚为什么我的错误没有显示出来?

最佳答案

问题出在这里:

catch (Exception ex)
{
ModelState.AddModelError(string.Empty, ex);
}

由于其中一个重载接受了一个Exception,我假设文本将从我提供的异常中正确提取。但事实并非如此。

进行以下更改会导致错误在验证摘要中正确显示。

catch (Exception ex)
{
ModelState.AddModelError(string.Empty, ex.Message);
}

关于c# - ValidationSummary 不显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43685504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com