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()
不能在空字符串上调用。
我正在用 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()
不能在空字符串上调用。