Чтение статических файлов в ASP.NET Blazor - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть клиентское приложение Blazor,

Я хочу иметь файл appsetting.json для моей конфигурации на стороне клиента, как будто у нас есть environment.ts в angular

Для этого я сохраняюпапка ConfigFiles под wwwroot и файл json внутри нее

Я пытаюсь использовать ее, как показано ниже, сначала получить путь

 public static class ConfigFiles
{
    public static string GetPath(string fileName)
    {
        return Path.Combine("ConfigFiles", fileName);
    }
}

, чем прочитать

public string GetBaseUrl()
    {
        string T = string.Empty;
        try
        {
            T = File.ReadAllText(ConfigFiles.GetPath("appsettings.json"));
        }
        catch (Exception ex)
        {
            T = ex.Message;
        }
        return T;
    }

Но я всегда получаю сообщение об ошибке

Не удалось найти часть пути "/ConfigFiles/appsettings.json".

Внутри метода GetPath я также попробовал

return Path.Combine("wwwroot/ConfigFiles", fileName);

Но все та же ошибка

Не удалось найти часть пути "wwwroot / ConfigFiles / appsettings.json".

Так как нетКонцепция IHostingEnvironment в клиентской среде, так как читать статический файл json здесь

1 Ответ

2 голосов
/ 26 сентября 2019

У меня есть клиентское приложение Blazor

ОК. Это означает, что File.ReadAllText(...) и Path.Combine(...) вообще не будут работать.Клиентская сторона означает, что вы можете работать на Android, Mac-OS и т. Д.

Команда Blazor предоставляет вам полный пример того, как читать файл, в форме образца страницы FetchData.

forecasts = await Http.GetJsonAsync<WeatherForecast[]>("sample-data/weather.json");

это возвращает вам содержимое файла в wwwroot/sample-data
Вы можете использовать Http.GetStringAsync(...), если вы хотите AllText

Если вы хотите иметь настройки для каждого пользователя, топосмотрите в пакет Blazored.LocalStorage.

...