【问题标题】:Differences among Blazor InputText, HTML Input and direct assigning from C# codeBlazor InputText、HTML Input 和从 C# 代码直接分配之间的差异
【发布时间】:2020-11-20 19:04:24
【问题描述】:

我正在学习这个新的 Blazor 框架,想知道使用 EditForm 及其组件与常规 html 输入与直接从代码分配以发布到数据库之间有什么区别。

例如 Input 和 InputText:

<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);
        }
    }

【问题讨论】:

    标签: c# blazor .net-5


    【解决方案1】:

    输入 Html 元素和表单输入组件用于从用户那里收集数据。在这方面,它们的功能或多或少是相同的。您使用 Html 输入文本或 InputText 组件从用户那里获取数据。实际上,InputText 组件的底层对象是 Html 输入文本。但是,InputText 组件除了呈现 Html 输入文本之外还包含其他功能。这包括将 InputText 与其他对象、格式设置、验证以及您在单纯的 Html 输入文本中找不到的许多其他内容相关联。

    直接在代码中赋值没有问题,也没有任何缺点或安全问题。大多数时候这并不实用,因为您需要从用户那里获取数据,而这只能通过页面上的 UI 元素来完成。

    【讨论】:

      猜你喜欢
      • 2016-04-13
      • 2012-12-02
      • 2021-09-29
      • 2017-10-10
      • 2010-12-18
      • 1970-01-01
      • 2017-10-14
      • 2016-04-26
      • 2015-10-09
      相关资源
      最近更新 更多