C# Blazor:从Blazor页面列出并链接本地HTML文件
我需要列出运行Blazor服务器的机器上的HTML文件。HTML页面由另一个应用程序生成。我能够检索所有HTML文件名,并在Blazor页面上列出它们,为找到的每个HTML文件创建一个列表。但是,当在我的Blazor页面上单击指向HTML文件的链接时,什么都没有发生。当我打开链接并在“新建”选项卡中选择“打开链接”时,它只会加载一个地址为:blankblocked的空页面 我对Blazor没有太多的经验,但我想不访问Blazor页面范围之外的文件和目录是一种保护 我的Blazor服务器来自本MSDN教程,正在运行: 我自己的代码如下添加到Index.razor中: Blazor应用程序位于C:\projects\BlazorApp中,HTML文件位于同一台计算机上的C:\Temp中 如何在Blazor页面中创建指向这些HTML文件的工作链接 我无法控制创建HTML文件的应用程序,因此我只能检查是否有可用的文件。如前所述,如果可用,我需要将它们链接起来。C# Blazor:从Blazor页面列出并链接本地HTML文件,c#,html,blazor,C#,Html,Blazor,我需要列出运行Blazor服务器的机器上的HTML文件。HTML页面由另一个应用程序生成。我能够检索所有HTML文件名,并在Blazor页面上列出它们,为找到的每个HTML文件创建一个列表。但是,当在我的Blazor页面上单击指向HTML文件的链接时,什么都没有发生。当我打开链接并在“新建”选项卡中选择“打开链接”时,它只会加载一个地址为:blankblocked的空页面 我对Blazor没有太多的经验,但我想不访问Blazor页面范围之外的文件和目录是一种保护 我的Blazor服务器来自本MS
提前谢谢 根据JeremyW的说法,我将读取文件的内容并将其显示为标记字符串。因此,我准备了一个页面,它接收完整的文件路径作为URL中的参数,然后读取文件
@inject NavigationManager navManager
@((MarkupString)htmlContent)
@code {
private string htmlContent = "";
protected override void OnInitialized()
{
var URL_PARAMS = GetURLParameters(navManager);
htmlContent = ReadHtmlFile(URL_PARAMS);
}
}
在HTML文件中有指向其他本地文件的附加链接。因此,在将实际内容传递给htmlContent变量之前,我会更新这些链接。现在,这些链接中的每一个都指向同一个blazor页面,再次提供文件路径作为参数
http://localhost:44444/readFilePage?fullPath=C%3a\文件%3a\data.html因为还没有人回答您-高级概述:您无法从Blazor内部访问文件系统以从C驱动器读取任何内容,因为Blazor将您的操作范围限定在浏览器窗口内的网页上。您必须通过服务器应用程序读取HTML并将HTML发送到Blazor前端,然后Blazor前端必须接受并呈现该HTML。感谢您的回复。显示文件内容非常简单,我没有想到这一点:D
@inject NavigationManager navManager
@((MarkupString)htmlContent)
@code {
private string htmlContent = "";
protected override void OnInitialized()
{
var URL_PARAMS = GetURLParameters(navManager);
htmlContent = ReadHtmlFile(URL_PARAMS);
}
}