标签: blazor-client-side

如何将 Blazor 组件呈现为 HTML 字符串

我正在寻找一种将 Blazor 组件呈现为 HTML 字符串的方法,以便我能够将其用作模板引擎,在我的 Web 应用程序中创建和发送电子邮件。想法?

blazor blazor-server-side blazor-client-side asp.net-blazor

12
推荐指数
2
解决办法
1773
查看次数

自定义组件上的 Blazor 双向绑定

我正在创建一个 blazor 服务器端应用程序,但在两个自定义组件之间绑定值时遇到问题。

我已经查看了有关 bind 或 @bind 应该如何工作的不同示例,但我无法弄清楚有关此事的最新信息是什么。

给定一个模型类 User:

public class User
    {
        [Mapping(ColumnName = "short_id")]
        public string ShortId { get; set; }

        public User()
        {

        }
    }
Run Code Online (Sandbox Code Playgroud)

我想构建一个表单,显示该用户的所有属性并将它们输入到输入中,以便可以对其进行编辑并最终保存到数据库中。

我的表单(父组件)如下所示:

<div class="edit-user-form">
    <AnimatedUserInput TbText="@User.ShortId" Placeholder="MHTEE Id"/>
    <button class="btn btn-secondary" @onclick="Hide" style="{display:inline-block;}">Back</button>
    <button class="btn btn-primary" @onclick="SaveUser" style="{display:inline-block;}">Save</button>
</div>
@code {
    [Parameter] public vUser User { get; set; }

    [Parameter] public Action Hide { get; set; }

    bool _error = false;

    void SaveUser()
    {
        ValidateUserData();
    }

    void ValidateUserData()
    {
        _error = …
Run Code Online (Sandbox Code Playgroud)

c# .net-core blazor blazor-server-side blazor-client-side

11
推荐指数
2
解决办法
5288
查看次数

Blazor WebAssembly:不支持提供的 ContentType;

我今天通过以下命令行安装了 Blazor WebAssembly 示例项目 (WeatherForecast):

dotnet new blazorwasm --hosted -o ProjectName
Run Code Online (Sandbox Code Playgroud)

我在调试模式下通过 Visual Studio 2019 安装后直接启动了 SPA。浏览器是:Chrome。浏览器显示应用程序,但是当我选择导航菜单“获取数据”时,什么也没有发生。Chrome 显示 1 个错误:

Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
      Unhandled exception rendering component: The provided ContentType is not supported; the supported types are 'application/json' and the structured syntax suffix 'application/+json'.
System.NotSupportedException: The provided ContentType is not supported; the supported types are 'application/json' and the structured syntax suffix 'application/+json'.
  at System.Net.Http.Json.HttpContentJsonExtensions.ValidateContent (System.Net.Http.HttpContent content) <0x2e87f38 + 0x0009a> in <filename unknown>:0 
  at System.Net.Http.Json.HttpContentJsonExtensions.ReadFromJsonAsync[T] (System.Net.Http.HttpContent content, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken) <0x2e87d30 + …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-web-api blazor blazor-client-side blazor-webassembly

11
推荐指数
1
解决办法
6838
查看次数

仍然需要对 Blazor WebAssembly 站点中的 CSS 文件进行缓存清除?

读了这篇文章,但仍然遇到问题:
我有我的 Blazor WebAssembly 站点,其中有一个静态 index.html 文件,可以以正常方式引导 Blazor。在其中<head>,我有<link href="css/app.min.css" rel="stylesheet" />。该文件是使用部署时的 Dockerfile RUN 步骤从 SCSS 构建的。

根据该问题,我不需要缓存清除 URL,因为 Blazor 会根据需要自动请求一个新的 URL。然而,当我部署站点并在 Firefox 中打开它时,我得到了旧样式,并在 Firefox 开发人员工具网络选项卡中看到 app.min.css 是从磁盘缓存中检索的。我必须按 Ctrl+F5 才能获取新样式。

那么这个链条到底出了什么问题呢?在我看来,每次部署时我仍然需要 CSS 的缓存清除 URL。 需要进行哪些设置才能在站点二进制文件更改时下载我的 CSS(按照 Steve Sanderson 在该问题中建议的方式)?

css browser-cache blazor-client-side blazor-webassembly

11
推荐指数
2
解决办法
4220
查看次数

Blazor 应用程序,如何添加模型状态验证错误?

如何在 SaveItem 事件中添加自定义验证消息(最好不要使用数据注释)?它应该显示在“ValidationMessage For=”上下文中。

@using System.ComponentModel.DataAnnotations
@page "/edititem"


<EditForm Model="@model" OnSubmit="@Submit" OnValidSubmit="@SaveItem">
    <DataAnnotationsValidator />
    <ValidationSummary />

    <InputText id="ItemName" @bind-Value="@model.ItemName" />
    <ValidationMessage For="@(() => model.ItemName)" />
    <button type="submit">Submit</button>
</EditForm>

@code {
    ItemModel model = new ItemModel();

    private void Submit()
    {

    }
    private void SaveItem()
    {


    }

    public class ItemModel
    {
        [Required]
        public string ItemName{ get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

blazor blazor-server-side blazor-client-side

10
推荐指数
2
解决办法
5243
查看次数

将 Blazor 服务器应用程序转换为 Blazor Web 组装方法

我想通过 Blazor 技术开发一个 SPA 项目。

由于调试 Blazor Web 程序集应用程序的复杂性,我想先将其创建为服务器端应用程序,然后再将其更改为 Web 程序集应用程序应用程序。

这可能吗?如果是这样,在我成功使服务器端 Blazor 项目工作后,我需要进行哪些更改才能获得与 WebAssembly 项目相同的功能?

另外,在我的服务器端 Blazor 项目中是否有任何我应该避免的特定方法或技术,因为它们在使用 WebAssembly 时没有等效项?

.net-core blazor blazor-server-side blazor-client-side

10
推荐指数
1
解决办法
3532
查看次数

如何在运行时在 Blazor WebAssembly 客户端应用程序中使用 Azure 应用程序设置作为 appsettings.json 配置?

在此输入图像描述

  • 我正在开发 Blazor WebAssembly 客户端/服务器项目(目录结构如上)
  • 在客户端和服务器项目中都有一些应用程序设置。
  • 这些项目托管在 Azure 中。

问题出在客户appsettings.json

  • 在客户端,appsettings.json位于目录内wwwroot。可以在应用程序内访问该文件,但是该设置不能被应用程序服务的 Azure Portal 应用程序设置覆盖。

这意味着,在将应用程序部署到 Web 应用服务上的 Azure 门户中后,我的配置设置不适用于应用程序设置的变量。

这是 中的代码Progam.cs,它工作正常并从文件中读取配置,但忽略 Azure 上的 Web 应用服务的配置设置。

public static async Task Main(string[] args)
{
    var builder = WebAssemblyHostBuilder.CreateDefault(args);
    builder.RootComponents.Add<App>("app");
    //Add a named httpClient and set base Address and Default Request Headers
    builder.Services.AddHttpClient("SOME_WEB_URL", client =>  // SOME_WEB_URL is defined in the appsettings.json or in the Azure App Service configuration (Application Settings)
    {
        client.BaseAddress …
Run Code Online (Sandbox Code Playgroud)

azure azure-web-app-service blazor blazor-client-side blazor-webassembly

10
推荐指数
1
解决办法
2515
查看次数

Blazor Dlls - 用户可以访问它们并反编译吗?

如果我在 Blazor 中遗漏了一些明显的内容,请原谅我,但是由于 dll 像 javascript 文件一样存在于浏览器中,用户是否可以下载 dll 文件并通过反编译文件和/或运行它们来查看执行代码在浏览器之外?

如果开发人员没有意识到他们的库代码像他们的 javascript 代码一样可见,这似乎会带来一个非常明显的安全问题。

blazor blazor-server-side blazor-client-side

9
推荐指数
1
解决办法
5909
查看次数

尝试从 Blazor Wasm 调用 AspNetCore Restful API 时出现“TypeError: Failed to fetch”错误

尝试从 Blazor Wasm 调用我的 AspNetCore Restful API 时,出现“TypeError: Failed to fetch”错误。我可以从邮递员那里调用它,它工作正常。

我的环境: Microsoft Visual Studio Community 2019 Preview Version 16.6.0 Preview 3.0

客户端:Blazor Wasm 服务(dotnetstandard 2.1)

  • AspNet.WebApi.Client 5.2.7
  • AspNetCore..WebAssembly 3.2 预览版 4.2
  • System.Net.Http.Json 3.2 预览版 5.2

重要用途:

using Microsoft.AspNetCore.JsonPatch;
using Newtonsoft.Json;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Json;
Run Code Online (Sandbox Code Playgroud)

父命名空间和类省略 _httpClient 注入父类

public async Task<MyDto> UpdatePartialAsync(Guid primaryId, ObjectForUpdateDto objectForUpdateDto)
{

    MyDto dtoFromApi = null;

    var patchDoc = new JsonPatchDocument<ObjectForUpdateDto>()
        .Replace(o => o.Name, objectForUpdateDto.Name)
        .Replace(o => o.Description, objectForUpdateDto.Description)

    var uri = $"MyUri/myResources/{primaryId}";

    try …
Run Code Online (Sandbox Code Playgroud)

httpclient json-patch asp.net-core .net-standard blazor-client-side

9
推荐指数
2
解决办法
5169
查看次数

为 Blazor WASM 保存时重新编译 .razor 文件

有没有办法让 Blazor Webassembly.razor在更改/更新并保存文件时重新编译它们?我已经习惯了这种情况发生在传统的 ASP.NET Core MVC 剃刀视图以及像 Angular 这样的客户端框架中。在 ASP.NET Core MVC > 3.0 中,类似的 services.AddRazorPages().AddRazorRuntimeCompilation();方法可以解决问题,但我找不到 Blazor 的任何内容。

当我需要停止整个应用程序并重新启动它以查看最新更改时,这很烦人。默认情况下,Main新 Blazor 应用程序的方法如下所示

        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);
            builder.RootComponents.Add<App>("app");

            builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

            await builder.Build().RunAsync();
        }
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?Blazor WASM 还没有出现吗?dotnet watch dotnet build如果这是一个解决方案,我对一些有点hacky的东西持开放态度。

c# asp.net-core blazor blazor-client-side

9
推荐指数
1
解决办法
2172
查看次数