标签: blazor-server-side

Blazor 项目的 app.config 解决方案是什么?

Blazor 应用程序的 app.config / web.config 解决方案是什么。我几乎可以肯定这对于 Blazor 服务器端项目是可能的。但更深入地想知道如何为客户端项目处理配置。

本质上,我需要知道应用程序在什么样的环境下运行(例如开发、测试、生产)。

Blazor 的配置故事是什么?

web-config asp.net-web-api asp.net-core blazor blazor-server-side

8
推荐指数
1
解决办法
3705
查看次数

如何通过 <img src="?" 将存储在 DB 中的图像显示为 byte[]?/> 在 Blazor

我想显示一个存储在数据库中的图像,我的 DAL 中有这个函数,我将它注入到名为 admin 的组件中:

 public byte[] GetCategoryLabelImage(int categoryLabelID) 
    {
        var categoryLabel = context.CategoryLabels.FirstOrDefault(cl => cl.Id == categoryLabelID);
        byte[] image = categoryLabel?.Image?.Image;
        return image;        
    }
Run Code Online (Sandbox Code Playgroud)

但是当我使用这样的标签时:

<img src="@admin.GetCategoryLabelImage(label.Id)" />
Run Code Online (Sandbox Code Playgroud)

它什么也没显示,这是显示图像的正确方法吗?

blazor-server-side

8
推荐指数
1
解决办法
2433
查看次数

onclick 方法在 Blazor 服务器端剃须刀组件中不起作用

我正在构建一个示例 razor 组件,但我的按钮 onclick 方法无法触发。当我单击按钮时,什么也没有发生。我什至在方法中放置了一个断点,以查看它是否捕获了它没有捕获的。该组件确实呈现,但正如我所说,单击按钮时,LoginUser 方法根本没有运行。

剃须刀组件页面:

    <div class="text-center">
        <Login FieldsetAttr="fieldsetAttr" UsernameAttr="usernameAttr" PasswordAttr="passwordInput"
               ButtonAttr="buttonAttr" ButtonText="Sign In" SignInManager="SignInManager"
               InvalidAttr="invalidAttr" />

    </div>

    @code {
        Dictionary<string, object> fieldsetAttr =
            new Dictionary<string, object>()
            {
                {"class", "form-group" }
            };

        Dictionary<string, object> usernameAttr =
            new Dictionary<string, object>()
            {
                {"class", "form-control" },
                {"type", "text" },
                {"placeholder", "Enter your user name here." }
            };

        Dictionary<string, object> passwordInput =
            new Dictionary<string, object>()
            {
                {"class", "form-control" },
                {"type", "password" }
            };

        Dictionary<string, object> buttonAttr =
            new Dictionary<string, object>()
            {
                {"class", …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-core blazor-server-side asp.net-core-3.0

8
推荐指数
2
解决办法
5251
查看次数

Blazor 服务器 - 如何配置本地 ADFS 安全性?

我有一个解决 .NET Core 3.1 预览版 2 的现有 Blazor(服务器)应用程序。

我需要追溯添加本地 ADFS(不是 Azure)安全性。我一直在尝试在 ASP.NET Core 中使用 WS-Federation关注 Microsoft 的Authenticate users,但它顽固地忽略了安全性。这篇文章当然是为 ASP.NET 而写的,而不是 Blazor...

到目前为止我所做的是:

public static void ConfigureServices(IServiceCollection services)
{
    services.AddIdentity<IdentityUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

    services.AddAuthentication()
        .AddWsFederation(options =>
        {
            options.MetadataAddress = "https://adfs.Server.com/FederationMetadata/2007-06/FederationMetadata.xml";
            options.Wtrealm = "https://localhost:44323/";
        });

    services.AddAuthorization();

    services.AddRazorPages();
    services.AddServerSideBlazor();

    ....
Run Code Online (Sandbox Code Playgroud)

值得关注的一件事- 数据库中的表当前支持早期的身份验证模式(成员资格?)(由我们正在重写的应用程序使用)。它有表 [AspNetRoles] [AspNetUserClaims] [AspNetUserLogins] [AspNetUserRoles] 和 [AspNetUsers]。这些会被覆盖吗?

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }    

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if …
Run Code Online (Sandbox Code Playgroud)

authentication authorization adfs asp.net-core blazor-server-side

8
推荐指数
1
解决办法
1447
查看次数

如何刷新主/父组件中的 blazor 子/子组件?

您有一个主要组件,而在主要组件内部,您有许多子组件

您想刷新单个子组件,而不是主组件的整个屏幕,这可能吗?

c# blazor blazor-server-side asp.net-core-3.0

8
推荐指数
1
解决办法
2391
查看次数

如何在 Blazor 服务器中设置同意 cookie

我有一个带有身份的 Blazor 3.1 应用程序,我想在其中实施 cookie 同意横幅。

在经典的 ASP .NET Core 中,有一个很好的 cookie 同意横幅模板。

    @using Microsoft.AspNetCore.Http.Features

    @{
        var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
        var showBanner = !consentFeature?.CanTrack ?? false;
        var cookieString = consentFeature?.CreateConsentCookie();
    }

    @if (showBanner)
    {
        <div class="container">
            <div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
                Use this space to summarize your privacy and cookie use policy. <a class="alert-link" asp-area="" asp-controller="Home" asp-action="Privacy">Learn More</a>.
                <button type="button" class="accept-policy close" data-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
                    <span aria-hidden="true">Accept</span>
                </button>
            </div>
        </div>
        <script>
            (function () {
                var button = …
Run Code Online (Sandbox Code Playgroud)

c# cookies asp.net-identity blazor blazor-server-side

8
推荐指数
1
解决办法
8223
查看次数

如何在 blazor 服务器端关闭页面时获取事件?

我正在 blazor 服务器端制作一个聊天室应用程序。

我想显示每个用户的在线状态。

现在我可以使用该OnAfterRenderAsync事件来获取用户已进入该页面。

exit通过https://docs.microsoft.com/en-us/aspnet/core/blazor/lifecycle?view=aspnetcore-3.1在 blazor 生命周期中似乎没有任何事件

有人说我可以使用该Dispose事件来实现它,而它确实有效。

更重要的是,我有一个疯狂的想法,即使用 window.onbeforeunloadjs事件来调用blazor方法。

我不知道哪一个最好。你能给我一个建议吗?谢谢你。

.net-core asp.net-core blazor blazor-server-side

8
推荐指数
1
解决办法
5915
查看次数

Blazor - 当子组件 onclick 事件发生时执行父组件的方法

我需要onclick在子组件中发生该事件,ShowMessage在父组件中执行方法,传递message字符串作为参数。以下代码不起作用:

儿童剃须刀:

    <input type="text" @bind-value="@message" @onclick="OnClickCallback"/>

    <button @onclick="ChangePassword">Parent button</button>

@code {
    private string message;
    
    [Parameter]
    private string Message {get; set;}

    [Parameter]
    public EventCallback<MouseEventArgs> OnClickCallback {get; set;}

    [Parameter]
    public EventCallback<string> OnClick { get; set; }

    private async Task ChangePassword()
    {
        await OnClick.InvokeAsync(message);
    }
    
}
Run Code Online (Sandbox Code Playgroud)

父剃刀:

@page "/parent"

<Child @bind-Message="message" OnClickCallback="@ShowMessage"></Child>

<p>@message</p>

@code {
    private string message;

    private void ShowMessage(MouseEventArgs args, string e)
    {
        message = e;
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:无法从“方法组”转换为“EventCallback”OnClickCallback="@ShowMessage"

c# blazor blazor-server-side asp.net-blazor blazor-webassembly

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

Blazor 服务器应用程序 JavaScript 库不工作(Metronic 模板)

我有 Blazor 服务器端应用程序,其中我为 Metronic Bootstrap 模板添加了 JavaScript 和 CSS 库。

当我运行应用程序时,模板已完全加载,但 JavaScript 没有响应。

例如,当我单击侧面菜单(箭头图标)或展开列表,或单击用户配置文件下拉菜单时,所有这些部分都不起作用。

但是,当我注释掉该行时,Blazor 服务器库 ( blazor.server.js) 模板开始工作,但其他 Blazor 组件无法正常工作(例如计数器)。

_Host.cshtml文件Head部分添加了以下 CSS 引用:

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" />    
<link href="assets/plugins/custom/fullcalendar/fullcalendar.bundle.css" rel="stylesheet" type="text/css" />
<link href="assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

Body部分中添加了以下 JavaScript 参考。

<script src="_framework/blazor.server.js"></script>
<script src="./assets/plugins/global/plugins.bundle.js"></script>
<script src="./assets/js/scripts.bundle.js"></script>
<script src="./assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
<script src="./assets/js/custom/widgets.js"></script>
<script src="./assets/js/custom/apps/chat/chat.js"></script>
<script src="./assets/js/custom/modals/create-app.js"></script>
<script src="./assets/js/custom/modals/upgrade-plan.js"></script>
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下方法,但没有任何效果。看起来 Blazor 服务器应用程序在这些 JavaScript 文件加载到 DOM 之前正在渲染。我如何加载这些脚本并使其正常工作。任何帮助将非常感激。

<script src="_framework/blazor.server.js" autostart="false"></script>
<script> …
Run Code Online (Sandbox Code Playgroud)

asp.net metronic asp.net-core blazor blazor-server-side

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

在 blazor 服务器应用程序中托管 Web api

我已在我的解决方案中添加了一个 webapi 项目,其中包含一个控制器来执行 HttpGet。Blazor服务器项目可以在本地很好地访问并部署。我可以在本地对服务进行邮递员调用,但部署的版本从我的 _Host 文件中向我提供 Blazor 连接失败消息。如何在不干扰 Blazor 的情况下从外部配置 webapi 访问?

我认为这可能是我需要解决的某种路由问题。我正在使用 .NET5,我的 webapi 启动有这个:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseSwagger();
        app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "myapp.WebApi v1"));
    }
    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}
Run Code Online (Sandbox Code Playgroud)

WebApi程序.cs:

namespace myapp.WebApi
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}
Run Code Online (Sandbox Code Playgroud)

Blazor 程序.cs:

namespace myapp.UI
{
    public class …
Run Code Online (Sandbox Code Playgroud)

asp.net-core-webapi blazor blazor-server-side

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