我在 blazor 服务器端应用程序中使用 BlazoredTypeahead 组件,我想知道 @context 关键字来自哪里。
以下代码运行正常,但 VS 报告它无法解析符号“上下文”。当然,我很好奇它为什么有效以及上下文来自哪里。
@inject IEquipmentService EquipmentService
@inject AppDataService AppDataService
<h3>ModelSelect</h3>
<BlazoredTypeahead SearchMethod="SearchModels"
@bind-Value="equipModel">
<SelectedTemplate>
@context.model
</SelectedTemplate>
<ResultTemplate>
@context.model (@context.model_desc)
</ResultTemplate>
</BlazoredTypeahead>
@if (equipModel != null)
{
<p>Selected model is: @equipModel.model</p>
}
@code {
private EquipModel equipModel;
private async Task<IEnumerable<EquipModel>> SearchModels(string searchText)
{
var result = await EquipmentService.SearchModels(AppDataService.CurrentContact, searchText);
return await Task.FromResult(result.ToList());
}
}
Run Code Online (Sandbox Code Playgroud) 我正在 VS2019 中从事服务器端 3.0.100 blazor 项目。
我有几页。如果在调试时我可以启动非默认路由/页面以进行调试,我会很高兴。
我在项目属性调试选项卡上尝试过的内容:
1) 设置启动浏览器的相对路径。如果我设置这个,比如说“设备列表”,应用程序从 localhost:44325/equipmentlist 开始,但会显示根路由。如果我随后导航到设备列表页面,URL 将更改为 localhost:44325/equipmentlist/equipmentlist 并显示正确的内容。
2) 设置 App URL:这与 1 的行为相同
每次单击调试时,我都想为自己节省额外的点击次数。
编辑:“启动浏览器”设置更改了浏览器启动时显示的地址,但显示的内容仍然是默认路由。
即 localhost:44325/equipmentlist/ 显示在浏览器地址栏中,但它仍然显示“/”页面中的内容。我必须导航到 localhost:44325/equipmentlist/equipmentlist 才能看到所需的内容。