【问题标题】:How do I display server side validation errors in Blazor (webassembly/wasm) using the ValidationSummary component?如何使用 ValidationSummary 组件在 Blazor (webassembly/wasm) 中显示服务器端验证错误?
【发布时间】:2021-04-07 18:58:11
【问题描述】:

对于 Blazor 客户端(webassembly/wasm),有没有很好的示例说明如何显示在向服务器提交数据期间发生的服务器端错误?

我只想在 ValidationSummary 组件中显示它们。最好的方法是什么?是否有如何显示服务器端错误的示例,就像客户端错误一样?

我已经捕获了任何错误并检查了 ProblemDetails(或 ValidationProblemsDetails)。但我不知道如何在 ValidationSummary 中“显示”这些问题。

【问题讨论】:

标签: blazor-client-side


【解决方案1】:

有一篇很棒的文章介绍了如何做这样的事情:https://blazor-university.com/forms/writing-custom-validation/

【讨论】:

【解决方案2】:

您只能获得服务器端 API 返回的内容。如果它是你的 API,让它返回一个包含必要信息的对象。

我使用这样的东西:

    public class DbTaskResult
    {
        public string Message { get; set; } = "New Object Message";
        public MessageType Type { get; set; } = MessageType.None;
        public bool IsOK { get; set; } = true;
        public int NewID { get; set; } = 0;

        public static DbTaskResult OK(int id = 0)
            => new DbTaskResult() { IsOK = true, Type = MessageType.Success, NewID = id };

        public static DbTaskResult NotOK(int id = 0)
            => new DbTaskResult() { IsOK = false, Type = MessageType.Danger};
    }

至于在验证摘要中显示,???这适用于验证各个字段。上面的对象被编码为返回可以快速转换为警报或 Toast 的信息。

我已在下面显示为示例警报 - 根据警报类型隐藏/显示和更改颜色 - 稍微自定义引导警报。

【讨论】:

  • 嗨。我进一步澄清了我的问题。
  • 如果你想走这条路,你需要将你返回的消息绑定到一个特定的字段(商店中的个别消息记录在FieldIdentifier。),然后将它们推送到ValidationMessageStore 在相关的EditContext 上。关于如何进行自定义验证的文章可能会为您提供足够的信息来做您想做的事情。这里有我的一个 - shauncurtis.github.io/articles/…。阅读,开始,然后在遇到困难时提出更多问题。
  • 就个人而言,除非错误是特定于字段的并且您希望在针对特定字段的验证消息中显示,否则我会在与 validationSummary 相同的位置使用某种警报,然后将其打开根据需要打开和关闭。我已更新我的答案,以包含我在应用程序中所做的示例。
猜你喜欢
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
相关资源
最近更新 更多