我正在开发一个ASP.NET Boilerplate服务项目。
当我保存客户端时,它返回一个错误:
租赁名称无效
租赁名称包含空格。 TenantDto
映射到Tenant
对象没有任何错误。数据库表TenancyName
列是nvarchar(64)
。保存时发生错误。
从Tenant Management的文档:
AbpTenant类定义了一些基本属性,最重要的是:
- TenancyName:这是应用程序中租户的唯一名称。它不应该正常改变。它可用于将子域分配给“mytenant.mydomain.com”等租户。 Tenant.TenancyNameRegex常量定义命名规则。
- 名称:租户的任意,人类可读的长名称。
TenancyNameRegex
是"^[a-zA-Z][a-zA-Z0-9_-]{1,}$"
,因为子域中不允许使用空格。
如上所述,使用Name
作为租户的人类可读名称(带空格)。
在保存租户之前,它将根据TenancyNameRegex正则表达式进行验证。因此,租户名称不能包含空间(按设计)。不要删除正则表达式检查,但添加客户端验证以检查租户名称。
protected virtual Task ValidateTenancyNameAsync(string tenancyName)
{
if (!Regex.IsMatch(tenancyName, AbpTenant<TUser>.TenancyNameRegex))
{
throw new UserFriendlyException(L("InvalidTenancyName"));
}
return Task.FromResult(0);
}