Blazor InputText、HTML 输入和直接从 C# 代码分配之间的差异
Differences among Blazor InputText, HTML Input and direct assigning from C# code
我正在学习这个新的 Blazor 框架,想知道使用 EditForm 及其组件与常规 html 输入与直接从代码分配以发布到数据库之间有什么区别。
例如输入和输入文本:
<EditForm Model="Advert" OnValidSubmit="Create">
<Input @bind-Value="advert.City" />
<InputText @bind-Value="advert.City"/>
</EditForm>
并直接从代码中赋值 advert.City="London
。它会导致任何缺点或安全问题吗?
public async Task Create()
{
try
{
advert.City = "London";
await advertRepository.CreateAd(advert);
//navigationManager.NavigateTo("ProductsList");
}
catch (Exception ex)
{
//...
Console.WriteLine(ex.Message);
}
}
input Html 元素和表单输入组件用于从用户收集数据。在这方面,它们的功能或多或少是相同的。您使用 Html 输入文本或 InputText 组件从用户那里获取数据。实际上,InputText 组件的底层对象是 Html 输入文本。但是,InputText 组件除了呈现 Html 输入文本之外还包含其他功能。这包括将 InputText 与其他对象相关联、格式化、验证,以及您无法在纯 Html 输入文本中找到的许多其他内容。
直接在您的代码中赋值没有问题,也没有任何缺点或安全问题。这在大多数情况下并不实用,因为您需要从用户那里获取数据,而这只能通过页面上的 UI 元素来完成。
我正在学习这个新的 Blazor 框架,想知道使用 EditForm 及其组件与常规 html 输入与直接从代码分配以发布到数据库之间有什么区别。
例如输入和输入文本:
<EditForm Model="Advert" OnValidSubmit="Create">
<Input @bind-Value="advert.City" />
<InputText @bind-Value="advert.City"/>
</EditForm>
并直接从代码中赋值 advert.City="London
。它会导致任何缺点或安全问题吗?
public async Task Create()
{
try
{
advert.City = "London";
await advertRepository.CreateAd(advert);
//navigationManager.NavigateTo("ProductsList");
}
catch (Exception ex)
{
//...
Console.WriteLine(ex.Message);
}
}
input Html 元素和表单输入组件用于从用户收集数据。在这方面,它们的功能或多或少是相同的。您使用 Html 输入文本或 InputText 组件从用户那里获取数据。实际上,InputText 组件的底层对象是 Html 输入文本。但是,InputText 组件除了呈现 Html 输入文本之外还包含其他功能。这包括将 InputText 与其他对象相关联、格式化、验证,以及您无法在纯 Html 输入文本中找到的许多其他内容。
直接在您的代码中赋值没有问题,也没有任何缺点或安全问题。这在大多数情况下并不实用,因为您需要从用户那里获取数据,而这只能通过页面上的 UI 元素来完成。