从Blazor Webassembly中的wwwroot同步读取文件

时间:2020-11-10 18:17:24

标签: c# blazor blazor-webassembly

因此,我已经能够像so这样成功地异步读取文件。
我正在做一个简单的文字游戏(hang子手),我正在从 wwwroot中的一些文本文件中读取单词。
在新游戏屏幕上,我让用户选择单词的长度进行猜测,并选择他们想要使用的单词集(例如常规单词,万圣节主题单词,圣诞节主题词等)

问题是,当用户输入单词长度的数字时,我正在验证是否存在该长度的单词,如果没有,则将数字设置为最接近单词长度的数字用户输入的内容(例如,如果他们在单词长度字段中输入999,并且使用的是常规单词列表,则将其设置为18,因为这是常规单词列表(电信)中最长的单词)。基本上,我需要在用户更改单词列表时立即读取文件,(至少与我目前的工作方式有关),以便我可以正确验证用户是否/何时更改单词长度字段。

我尝试做类似的事情:

public static string ReadFile(string localUrl) {
    return Http.GetStringAsync(localUrl).Result;
}

不幸的是,Blazor不喜欢这样,当我尝试这样做时会抛出运行时异常。

我目前正在将输入字段绑定到属性(例如<input @bind="MyProperty">),因为这似乎是验证它们的一种简便方法,但是属性不能异步。我有个想法,我可以在单词列表组合框中使用@onchange来调用更新单词列表的异步方法,但这感觉更混乱了,我觉得我可能会以错误的方式进行操作

我应该坚持使用@onchange来调用异步方法来更新单词列表的解决方案,还是应该以不同的方式进行操作?也许在一开始就加载我所有的单词列表(只有几kb)?还是有更好的同步加载文件的方法?

0 个答案:

没有答案