如何在解决方案资源管理器中将代码合并到文件后面?

时间:2020-04-01 20:12:48

标签: c# blazor blazor-server-side .net-core-3.1

我正在尝试为blazor应用程序创建一个代码隐藏文件(使用.NET Core 3.1,Blazor服务器端),同时该文件也显示为解决方案资源管理器中的剃刀文件,您可以单击打开,然后然后在树形结构中看到razor.cs文件。

我设法使功能发挥作用,但在解决方案资源管理器中仍无法正确显示。

据我所知,我做的一切正确,我什至尝试使用项目模板,但这也不起作用。无论我尝试什么,它们总是显示为单独的文件。

文件名是相同的,除了扩展名,该类是从ComponentBase继承的,我尝试在文件FetchData或FetchDataBase中调用该类,但均无效。

我的班级文件叫做:'FetchData.razor.cs' 我的剃刀文件称为“ FetchData.razor”

我错过了什么吗?我使用的是VS2019 V16.5.2,是否需要为此使用预览版?

代码段: 课:

public partial class FetchDataBase : ComponentBase
{
    [Inject]
    private CoordinatesService CoordinatesService { get; set; }

    protected IEnumerable<ICoordinate> coordinates;

    protected override async Task OnInitializedAsync()
    {
        coordinates = await CoordinatesService.GetCoordinates();
    }
}

剃须刀页面:

@page "/fetchdata"
@inherits FetchDataBase

<h1>Coordinates</h1>

<p>This component demonstrates fetching data from a service.</p>

@if (coordinates == null)
{
    <p><em>Loading...</em></p>
}
else
{
    <table class="table">
        <thead>
            <tr>
                <th>Test</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var coordinate in coordinates)
            {
                <tr>
                    <td>@coordinate.Test</td>
                </tr>
            }
        </tbody>
    </table>
}

解决方案资源管理器的图像:

Example of solution explorer

谢谢!

2 个答案:

答案 0 :(得分:1)

乍一看,您的文件名看起来确实正确,因此请确保在解决方案资源管理器中打开了文件嵌套:

enter image description here

答案 1 :(得分:0)

编辑:您的文件名看起来正确。您是否尝试过关闭Visual Studio并重新打开?文件的小锁是什么,那是源代码控制吗?

当我更改文件名时,文件会在解决方案资源管理器中切换为嵌入到文件中。

命名您的文件:

FileName.razor

enter image description here FileName.razor.cs