c# - 如果 ModelState.IsValid 失败,会收到错误消息吗?

标签 c# asp.net asp.net-mvc

我的 Controller 中有这个功能。

[HttpPost]
public ActionResult Edit(EmployeesViewModel viewModel)
{
    Employee employee = GetEmployee(viewModel.EmployeeId);
    TryUpdateModel(employee);

    if (ModelState.IsValid)
    {
        SaveEmployee(employee);
        TempData["message"] = "Employee has been saved.";
        return RedirectToAction("Details", new { id = employee.EmployeeID });
    }

    return View(viewModel); // validation error, so redisplay same view
}

一直失败,ModelState.IsValid 一直返回 false 并重新显示 View 。但我不知道错误是什么。

有没有办法获取错误并将其重新显示给用户?

最佳答案

试试这个

if (ModelState.IsValid)
{
    //go on as normal
}
else
{
    var errors = ModelState.Select(x => x.Value.Errors)
                           .Where(y=>y.Count>0)
                           .ToList();
}

errors 将是所有错误的列表。

如果你想向用户显示错误,你所要做的就是将模型返回到 View ,如果你没有删除 Razor @Html.ValidationFor() 表达式,它会出现。

if (ModelState.IsValid)
{
    //go on as normal
}
else
{
    return View(model);
}

该 View 将在每个字段旁边和/或 ValidationSummary(如果存在)中显示任何验证错误。

关于c# - 如果 ModelState.IsValid 失败,会收到错误消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212248/

相关文章:

c# - 隔离存储误解

asp.net-mvc - 操作被取消。在 System.Threading.CancellationToken.ThrowIfCancellationRequested()

c# - 将 PNG 图像转换为 ZPL 代码

c# - parse() 处的 JsonReaderException - HololensDeploy

android - 如何修复 Module 依赖于一个或多个 Android Libraries 但在构建 Cordova App 时是一个 Jar

c# - 您可以删除存储在 HttpContext.Current.Application ["variable"] 中的值吗?

asp.net-mvc - ASP.NET MVC Unobtrusive 客户端验证不起作用

asp.net-mvc - ASP.NET MVC URL 解码

c# - 在 C# 中通过语音进行谷歌搜索

c# - PAGEMETHODS 不适用于 JS 函数