Blazor 修改字符串 (toUpper) 失败

Blazor modifying a string (toUpper) fails

我正在用 Blazor 做一些测试,想获取一个字符串并将其简单地更改为大写,如下所示:

@page "/InputBindingTest"
<h1>Binding examples...</h1>
<hr />

<h2>Text input example:</h2>
<p>Firing the 'oninput' event for each key press</p>

<input type="text" bind-value-oninput="@CurrentText" />

<p>Current value is: @CurrentText</p>

<p>Here it is again in UPPERCASE: @CurrentText.ToUpper()</p>

<h2>Checkbox example:</h2>
<input name="check1" type="checkbox" bind-value-onchange="@CurrentSetting" />
<label for="check1">@CurrentSetting</label>

@functions {
    private string CurrentText { get; set; }
    private bool CurrentSetting { get; set; }
}

除字符串上的 ToUpper 方法外,一切正常。 Web Assembly 进行了一次令人讨厌的跳水:

WASM: Unhandled exception rendering component

我想这还不能完成,还是我做错了什么?

仔细查看生成的错误跟踪可以发现这是一个空引用异常。

简单的修复是 ?. :

<p>Here it is again in UPPERCASE: @CurrentText?.ToUpper()</p>

and/or

private string CurrentText { get; set; } = "";

Blazor 的绑定可以很好地处理 @CurrentText</p> 中的 null
但是 ToUpper() 不能在空字符串上调用。