标签: blazor-webassembly

如何在 Blazor WebAssembly 中的 blazor-error-ui 元素中显示错误详细信息?

对于我的 Blazor WebAssembly 应用程序,我希望能够在 blazor-error-ui 元素中显示错误的详细信息(消息、堆栈跟踪)。

我该怎么做呢?

.net asp.net blazor blazor-webassembly

7
推荐指数
1
解决办法
1万
查看次数

获取页面已通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“.well-known/openid-configuration”

因此,我有一个 ASP.Net Core 托管 Blazor Web Assembly 项目,使用 Identity Server 4 来管理我的登录和注册,当我调试并尝试登录我的应用程序时,端点“.well-known/openid-configuration”是通过 HTTPS 提供服务,但是当我在 Docker 中运行它的发布版本时,它通过 HTTP 提供服务,导致我的登录页面无法工作。我如何才能通过 HTTPS 提供服务?

完整错误为: AuthenticationService.js:1 混合内容:“https://musicfusion.app/”页面是通过 HTTPS 加载的,但请求了不安全的 XMLHttpRequest 端点“http://musicfusion.app/.well-known” /openid-配置'。该请求已被阻止;内容必须通过 HTTPS 提供。

编辑:我的 Startup.cs

using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.ResponseCompression;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System.Linq;
using Soundbox.Server.Data;
using Soundbox.Shared;
using System;
using Blazored.Toast;
using test.Server.Hubs;
using Microsoft.AspNetCore.Identity.UI.Services;
using test.Server.Services;
using Microsoft.AspNetCore.HttpOverrides;

namespace test.Server
{
    public …
Run Code Online (Sandbox Code Playgroud)

c# docker asp.net-core identityserver4 blazor-webassembly

7
推荐指数
1
解决办法
2263
查看次数

Blazor WebAssembly 是否可以合并到 .NET Framework 4.8 MVC 站点中?

我已经使用 .NET Core 5 Mvc 应用程序成功完成了此任务,从 Razor 页面站点提供了单独的 Blazor WebAssembly SPA。我正在使用标签助手并手动引用 _framework/blazor.web assembly.js 文件。它很好地保持了 razor 页面布局,并在 razor 页面网站内无缝地提供 SPA,并且是完全交互式的。

由于 WebAssembly 完全在浏览器中运行,因此我很好奇是否有办法对 .NET Framework 4.8 MVC 应用程序执行相同的操作。我认为 MVC 应用程序需要提供的只是访问 _framework/*.j​​s 文件来启动 Blazor 应用程序。

Blazor 项目的目标是 .NET Standard 2.1,所以我真的不明白为什么它不可能。.NET Framework 4.8 只需要 RenderComponentAsync 的等效项。这存在吗?

asp.net-mvc blazor-webassembly

7
推荐指数
1
解决办法
2346
查看次数

Blazor 相当于 @Url.Action 或 @Html.ActionLink

在 ASP.NET MVC 中,只要您有一个控制器和一个操作,您就可以在 Razor 页面中动态生成指向它的链接,如下所示:

Url.Action("ProductController", "Index", new { id = "123" })
Run Code Online (Sandbox Code Playgroud)

这将返回一个字符串,其中包含具有指定路由值的该操作的路径:

/Product/123
Run Code Online (Sandbox Code Playgroud)

Blazor 中是否有类似的方法,您可以为其提供组件的名称和路由值:

Url.Component("ProductPage", new { id = "123" })
Run Code Online (Sandbox Code Playgroud)

并得到路径?

/Product/123
Run Code Online (Sandbox Code Playgroud)

blazor blazor-server-side blazor-webassembly

7
推荐指数
1
解决办法
2025
查看次数

Blazor 和浏览器页面刷新

我有一个 Blazor WASM 项目,其属性最初是在 OnInitializedAsync() 方法中设置的。一切正常,但如果我点击浏览器刷新按钮,我会收到“对象未设置”错误,因为所有属性都被重置,并且当您点击浏览器刷新按钮时 OnInitializedAsync() 似乎没有运行。在这种情况下如何重新初始化属性?我应该使用一种方法来代替 OnInitializedAsync() 吗?

谢谢

blazor blazor-webassembly

7
推荐指数
1
解决办法
1万
查看次数

如何在 Web 表单中嵌入和使用 Blazor WebAssembly?

有一个 Web 表单应用程序,我希望通过将 Blazor 嵌入到 Web 表单页面中(就像使用 Angular 一样),逐页地将其逐渐移植到 Blazor WebAssembly。

将 Blazor 应用程序发布到 Web Forms 项目中名为“Blazor”的子目录下。如果我运行 Web 表单应用程序并点击 http://localhost:1234/Blazor,则 Blazor 应用程序运行良好(编辑 Blazor index.html => 后<base href="/Blazor/" />)。但是,当我尝试将 Blazor 嵌入 Web 表单页面时,它不起作用。Web 表单页面 asp:content 包含 Blazor index.html 页面包含的内容:

<%@ Page Title="EmbedTest" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="EmbedTest.aspx.cs" Inherits="WebFormBlazor.EmbedTest" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <app>Loading...</app>

    <div id="blazor-error-ui">
        An unhandled error has occurred.
        <a href="" class="reload">Reload</a>
        <a class="dismiss"></a> 
    </div>

    <script src="/Blazor/wwwroot/_framework/blazor.webassembly.js"></script>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

当我访问 http://localhost:1234/EmbedTest 时,页面显示:正在加载...发生了未处理的错误。重新加载

并在控制台中显示以下错误消息: Uncaught SyntaxError: Unexpected token '<' blazor.webassemble.js:1 …

asp.net webforms blazor blazor-webassembly

7
推荐指数
1
解决办法
4518
查看次数

JsonSerializer.DeserializeAsync&lt;T&gt; 不反序列化

我正在使用我的第一个 Blazor 应用程序并遇到一个奇怪的问题。我有一个 Web API,它返回一个相当基本的 JSON 响应:

{
    "entityId": 26,
    "notifications": [
        {
            "type": "Success",
            "message": "The operation completed successfully."
        }
    ],
    "hasErrors": false,
    "hasWarnings": false
}
Run Code Online (Sandbox Code Playgroud)

有一个标准的 POCO 类与上述属性相匹配。从 Blazor 应用程序中,当我尝试从 an 获取响应时Http.PutAsJsonAsync<T>,会创建 POCO 类的实例(因此它不为 null 并且不会引发错误),但上述值实际上都不存在。该EntityId属性为 null 并且Notifications已实例化但为空。我尝试访问响应的方式是:

var result = await Http.PutAsJsonAsync<ManufacturerModel>($"manufacturers", (ManufacturerModel)context.Model);
if (result.IsSuccessStatusCode)
{
  var response = await JsonSerializer.DeserializeAsync<EntityResponseModel>(result.Content.ReadAsStream());
    
  //response isn't null - it's just a newly created object with nothing mapped
}
Run Code Online (Sandbox Code Playgroud)

通过 Chrome 中的控制台,我已经确认返回了正确的 JSON,所以它真的很令人困惑为什么它会创建该类的新实例,但不映射任何值。

有任何想法吗?

**** …

c# asp.net-web-api blazor-webassembly

7
推荐指数
2
解决办法
7616
查看次数

Microsoft.AspNetCore.Components.Forms.InputDate 需要 EditContext 类型的级联参数

我正在开发一个ASP.NET 5.0 blazor web assembly应用程序。我需要在仪表板屏幕中有一个日期选择器来选择一个日期来显示详细信息。

这是我的代码:

<input class="input" type="month" id="staffPicker" name="staffPicker"
        aria-label="Staff Sales Detail Period"
        @bind="StaffSaleDetailsPeriod"
        max="@DateTime.Now.ToString("yyyy-MM")">
Run Code Online (Sandbox Code Playgroud)

我需要在日期更改时触发 API 调用。所以我尝试添加@onchange到上面的代码中,如下所示。

<input class="input" type="month" id="staffPicker" name="staffPicker"
        aria-label="Staff Sales Detail Period"
        @bind="StaffSaleDetailsPeriod"
        max="@DateTime.Now.ToString("yyyy-MM")"
        @onchange="OnStaffSalePeriodChange">
Run Code Online (Sandbox Code Playgroud)

但这会产生新的错误,如下所示:

该元素使用属性“onchange”两次或多次。属性必须是唯一的(不区分大小写)。属性“onchange”由“@bind”指令属性使用。

所以我尝试将上面的input元素替换<InputDate>为如下所示,

<InputDate class="input is-small"
        ValueExpression="() => StaffSaleDetailsPeriod"
        Value="StaffSaleDetailsPeriod"
        ValueChanged="(DateTime staffSalesPeriod) => OnStaffSalePeriodChange()"
        max="@DateTime.Now.ToString("yyyy-MM")"/>
Run Code Online (Sandbox Code Playgroud)

这会产生运行时错误,如下所示:

EditForm 内的Microsoft.AspNetCore.Components.Forms.InputDate 1[System.DateTime] requires a cascading parameter of type EditContext. For example, you can use Microsoft.AspNetCore.Components.Forms.InputDate1[[System.DateTime, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]

缺少什么或者这<InputDate>不能与 …

asp.net-core asp.net5 blazor blazor-webassembly

7
推荐指数
1
解决办法
1万
查看次数

Blazor RemoteAuthenticatorView =&gt; OnLogInSucceeded 运行多次

<RemoteAuthenticatorView Action="@Action" OnLogInSucceeded="OnLogInSucceeded" />在 Blazor 应用程序的身份验证页面中使用,并注意到它在用户登录时多次调用“OnLogInSucceeded”。我希望它只运行一次。当用户登录时,我必须从数据库中获取一些数据,并认为这就是执行此操作的地方。这并不是说会出现错误,只是每次登录时检索数据 3-4 效率很低。

有没有更好的方法/地方在登录时进行 api 调用?

我正在使用 Azure B2C..

blazor-client-side blazor-webassembly

7
推荐指数
0
解决办法
882
查看次数

在 MudBlazor 中添加新图标

有没有办法在 MudBlazor 图标中添加新图标。我正在做一个关于纺织的项目,我需要 MudBlazor 中的不同图标。我找到了图标,但不知道如何将它们添加到 MudBlazor 中。提前致谢 !

c# blazor blazor-webassembly mudblazor

7
推荐指数
3
解决办法
1万
查看次数