如何使用 Blazor 客户端应用程序在服务器上创建新文件?
How to create a new file on the server with blazor client-side application?
我正在尝试通过单击客户端页面上的按钮在 Web 服务器上创建一个新文件。
浏览器控制台仅显示 "WASM: File created." 但不显示任何有关文件操作的错误或警告。
路径/wwwroot下也没有任何新文件。
Blazor 服务器 运行 在本地主机 (Win10) 上作为管理员。
Index.razor内容;
@page "/"
<h1>Demo1</h1>
<button type="submit" @onclick="CreateFile.Run">Create A New File</button>
@code
{
public class CreateFile
{
public static void Run()
{
System.IO.File.WriteAllText("test.txt", "hello world");
System.IO.File.WriteAllText(@"C:\VS Code Projects\Demo1\Client\wwwroot\samplefile.txt", "content 123");
Console.WriteLine("File created.");
}
}
}
这是不可能的。您的代码在客户端而不是服务器上 运行,并且您无权访问客户端上的文件系统。
如果你想做这样的事情,你需要使用 Blazor 服务器应用程序而不是 Blazor WebAssembly 应用程序。
此消息:"WASM: File created." 表示您正在使用 Blazor WebAssembly 应用程序,对吧?浏览器不应允许您在客户端上创建文件。这只是您的代码生成的消息。
理解这一点:当您按下按钮时,会发生正常的 post 返回,因为按钮的类型是 'submit'。 return到调用页面后,我猜是触发了点击事件(不确定但可能是这样),然后执行运行方法中的代码显示消息"WASM: File created."
了解这一点:您已经创建了一个托管的 Blazor WebAssembly 应用服务器。这是一个单页应用程序,它应该通过 Web Api 或 SignleR 与您的服务器通信。你不能使用post backs,你需要了解Blazor的两种执行模式是如何工作的。
我正在尝试通过单击客户端页面上的按钮在 Web 服务器上创建一个新文件。
浏览器控制台仅显示 "WASM: File created." 但不显示任何有关文件操作的错误或警告。
路径/wwwroot下也没有任何新文件。
Blazor 服务器 运行 在本地主机 (Win10) 上作为管理员。
Index.razor内容;
@page "/"
<h1>Demo1</h1>
<button type="submit" @onclick="CreateFile.Run">Create A New File</button>
@code
{
public class CreateFile
{
public static void Run()
{
System.IO.File.WriteAllText("test.txt", "hello world");
System.IO.File.WriteAllText(@"C:\VS Code Projects\Demo1\Client\wwwroot\samplefile.txt", "content 123");
Console.WriteLine("File created.");
}
}
}
这是不可能的。您的代码在客户端而不是服务器上 运行,并且您无权访问客户端上的文件系统。
如果你想做这样的事情,你需要使用 Blazor 服务器应用程序而不是 Blazor WebAssembly 应用程序。
此消息:"WASM: File created." 表示您正在使用 Blazor WebAssembly 应用程序,对吧?浏览器不应允许您在客户端上创建文件。这只是您的代码生成的消息。
理解这一点:当您按下按钮时,会发生正常的 post 返回,因为按钮的类型是 'submit'。 return到调用页面后,我猜是触发了点击事件(不确定但可能是这样),然后执行运行方法中的代码显示消息"WASM: File created."
了解这一点:您已经创建了一个托管的 Blazor WebAssembly 应用服务器。这是一个单页应用程序,它应该通过 Web Api 或 SignleR 与您的服务器通信。你不能使用post backs,你需要了解Blazor的两种执行模式是如何工作的。