我一直在研究如何将Blazor InputText maxlength属性自动化到dbcontext表的列大小(不使用重复信息的DataAnnotation),并提出了一个解决方案-但这是实现它的最佳方法吗?
感谢您的帮助-经过50年的编程,我不是什么都能跟上。我修改了这个类,使它非常简单,但却能达到我想要的效果。
作为一个sql优先的开发人员,我已经在数据库中有了很多信息,我真的不再使用DataAnnotations来复制这些了。
我希望dbcontext函数对某些人来说比输入组件更有用——我本可以多考虑一下。
<InputTextDb @bind-Value="SomeValue" MaxLength="@db.GetStringColumnLength("TableName.ColumnName")" />
public class InputTextDb : InputText
{
[Parameter]
public int? MaxLength { get; set; }
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
if (MaxLength.HasValue)
{
Dictionary<string, object> dic = new()
{
{ "maxlength", MaxLength.Value }
};
this.AdditionalAttributes = dic;
}
base.BuildRenderTree(builder);
}
}