首页 > 解决方案 > 如何将内存中的对象作为 JSON 文件从服务器端 Blazor 下载到客户端?

问题描述

我有一个类,其中包含用户在访问页面后可能想要下载的一些信息。使用 JSRuntime 互操作的一些初步挖掘点。

我的类.cs

public class MyClass
    {
        public int Count { get; set; }
        public string Summary { get; set; }
    }

MyClassPage.razor

<button type="button" class="ml-auto p-2 btn btn-primary" onclick="@DownloadFile">Download</button>

...

async Task DownloadFile()
    {
        var testObj = new SpeciesData();
        testObj.Count = 100;
        testObj.Summary = "Lorem Ipsum";

        var fileName = "testing.json";

        var serializedObject = JsonSerializer.Serialize(testObj);
        byte[] bytes = Encoding.UTF8.GetBytes(serializedObject);

        await JS.InvokeAsync<object>(
            "saveAsFile",
            fileName,
            Convert.ToBase64String(bytes ));

    }

如何获取要下载的文件?不确定我在哪里/如何将 JS 文件注入项目(我假设使用名为 saveAsFile 的函数?)

我参考过的类似问题:

标签: c#.netrazorblazorblazor-server-side

解决方案


推荐阅读