gpt4 book ai didi

breeze - 是否可以扩展从服务器接收到的 Breeze 元数据?

转载 作者:行者123 更新时间:2023-12-05 08:01:11 28 4
gpt4 key购买 nike

想知道是否有人知道扩展或配置 Breeze 以便服务器返回实体元数据中的附加信息的任何方法?我想使用这些附加数据来协助验证。

假设我有一个应用了一些数据注释的实体模型:

public class Person {    
[RegularExpression(@"^$|^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?",
ErrorMessage="The Website address does not appear to be valid.")]
public string Website { get; set; }

[Required(ErrorMessage="The Name field is required."),
MaxLength(150, ErrorMessage = "The Name field cannot exceed 150 characters."),
MinLength(5, ErrorMessage = "The Name field must be at least 5 characters.")]
public string Name { get; set; }
//...
}

现在,Breeze 仅根据它收到的元数据连接 MaxLength 和 Required Validator,因为这是它开箱即用的全部支持。如果 Breeze 可以在元数据中包含服务器实体上数据注释属性中描述的信息,我认为 Breeze 可以自动向客户端 EntityType 添加额外的股票验证器(例如,对于 RegEx、Range、MinLength、 ETC... )。这将涵盖大多数基本验证用例。或者,它还可以允许开发人员检查元数据并提取有用的信息,例如我们可以用来连接我们自己的自定义 RegEx 验证器的 regEx 字符串。

此外,是否有任何方法可以让 Breeze 在元数据中包含 ErrorMessage 验证属性的值,然后让 breeze 客户端使用它而不是默认的 required 和 maxLength messageTemplates?这意味着您只需在服务器上的一个位置定义错误消息,而不必为每个实体自定义它。

我试图避免必须在客户端上创建和注册一堆自定义验证器,以进行看起来像是可以由 Breeze 自动处理的基本验证。

谢谢,理查德

最佳答案

这是一个很好的问题。

我们还没有很好地记录服务器如何序列化元数据,但这应该“很快就会实现”。但是,如果您查看通过网络传输的 json,您会注意到验证器仅按名称进行序列化。然后在客户端的注册验证器(或验证器工厂)中查找此名称,然后将其添加到客户端元数据中。因此,我们的想法是使用唯一名称在客户端上注册您的验证器“实现”,然后让服务器在从服务器向下发送元数据时引用该名称。

一旦我们记录了如何创建您自己的服务器端元数据以发送到客户端,希望这会在一周左右的时间内变得更加清晰。

关于breeze - 是否可以扩展从服务器接收到的 Breeze 元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469838/

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