Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Blazor Textarea在变量更改时更新_C#_Blazor - Fatal编程技术网

C# Blazor Textarea在变量更改时更新

C# Blazor Textarea在变量更改时更新,c#,blazor,C#,Blazor,我希望文本区域始终显示变量的值。但它只有在我点击按钮时才会更新。每次变量更改时,我如何更新textarea <button class="btn btn-primary" @onclick="Test">Test</button> <textarea type="text" name="configJson" id="configJson" value="

我希望文本区域始终显示变量的值。但它只有在我点击按钮时才会更新。每次变量更改时,我如何更新textarea

<button class="btn btn-primary" @onclick="Test">Test</button>
<textarea  type="text" name="configJson" id="configJson"  value="@inputString" rows="20" cols="50" />
@code {
private string inputString;
    private void Test()
    {
        inputString = inputString;
    }
}
我有代码,不断地改变变量,但它不更新textarea。只有单击按钮,文本区域才会更新。我做错了什么? 提前谢谢

您需要的是ComponentBase类的StateHasChanged方法。 这告诉Blazor数据绑定(包括单向绑定)需要更新。 顺便问一下,为什么要使用textarea元素的value属性?你应该设置它的内容。它不是输入。请参见下面的示例:

@页面/ @正文 @代码{ 公共字符串文本{get;set;} int计数器{get;set;} 已初始化受保护的覆盖无效{ 碱基化; var timer=新System.Timers.Timer1000; timer.appead+=s,e=>{ 计数器++; InvokeAsync=>{ Text=$Tick{Counter}; 国家发生了变化; }; }; 定时器。启动; } } 您需要的是ComponentBase类的StateHasChanged方法。 这告诉Blazor数据绑定(包括单向绑定)需要更新。 顺便问一下,为什么要使用textarea元素的value属性?你应该设置它的内容。它不是输入。请参见下面的示例:

@页面/ @正文 @代码{ 公共字符串文本{get;set;} int计数器{get;set;} 已初始化受保护的覆盖无效{ 碱基化; var timer=新System.Timers.Timer1000; timer.appead+=s,e=>{ 计数器++; InvokeAsync=>{ Text=$Tick{Counter}; 国家发生了变化; }; }; 定时器。启动; } }
谢谢,这就是我所需要知道的一切=工作起来很有魅力。使用value属性而不是textarea的内容没有错。它是直观的,与其他输入元素一致,并且工作得非常好。我是布拉佐。这不是Html。甚至表单InputTextArea组件也绑定到value属性,而不是绑定到content->@enet:如果这与HTML的行为不同,则不一致。我知道,像InputText这样的内置Blazor组件可以而且应该表现不同——这是意料之中的。我们知道它们不是HTML元素。事实上,它们是由不同部分组成的组件,顾名思义。当您将隐含的、不明显的界面隐藏在一个常见的、众所周知的HTML元素名称下时——这只是一个糟糕的设计,它会导致混乱和错误。谢谢您,这就是我所需要知道的一切=非常有魅力。使用value属性而不是textarea的内容没有错。它是直观的,与其他输入元素一致,并且工作得非常好。我是布拉佐。这不是Html。甚至表单InputTextArea组件也绑定到value属性,而不是绑定到content->@enet:如果这与HTML的行为不同,则不一致。我知道,像InputText这样的内置Blazor组件可以而且应该表现不同——这是意料之中的。我们知道它们不是HTML元素。事实上,它们是由不同部分组成的组件,顾名思义。当您将隐含的、不明显的接口隐藏在一个常见的、众所周知的HTML元素名称下时——这只是一个糟糕的设计,它将导致混乱和错误。