标签: blazor-server-side

Blazor:如何在 HTML 渲染后调用 JavaScript

我有一个自定义组件,当它在浏览器中呈现时,我需要测量其大小(在 JavaScript 中)并回调 Blazor。

如何注册 JavaScript 以在特定组件渲染完成后调用?

blazor blazor-server-side blazor-webassembly

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

如何在 blazor 中实现两种方式的数据绑定?

我有以下类似于TextBox组件的组件。然而由于某种原因,内容似乎Value永远不会改变。

我本希望它可以在没有手动 JavaScript 的情况下与数据绑定一起使用,不是吗?


<div class="form-group">
    <input type="text" class="form-control" @bind="Value" @onkeyup="OnKeyUp" placeholder="@Placeholder"/>
</div>

@code {
    
    [Parameter]
    public string Value { get; set; }

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

    [Parameter]
    public string Placeholder { get; set; }

    private void OnKeyUp(KeyboardEventArgs obj)
    {
        ValueChanged.InvokeAsync(Value);
    }

}
Run Code Online (Sandbox Code Playgroud)

blazor blazor-server-side

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

Blazor UserManager.GetUserAsync 抛出 NullReferenceException

UserManager.GetUserAsync(authState.User)UserManager除非已经被调用,否则会抛出异常。

例如;

这引发NullReferenceExceptionawait UserManager.GetUserAsync(authState.User);

@ page "/"
@inject UserManager<ApplicationUser> UserManager

<AuthorizeView>
  ...
</AuthorizeView>

@code{
    [CascadingParameter]
    private Task<AuthenticationState> authenticationStateTask { get; set; }

    protected async override Task OnInitializedAsync()
    {
      var authState = await authenticationStateTask;
      var currentUser = await UserManager.GetUserAsync(authState.User); // exception here
    }
}
Run Code Online (Sandbox Code Playgroud)

但这工作正常;

@ page "/"
@inject UserManager<ApplicationUser> UserManager

<AuthorizeView>
  ...
</AuthorizeView>

@code{
    [CascadingParameter]
    private Task<AuthenticationState> authenticationStateTask { get; set; }

    protected async override Task OnInitializedAsync()
    {
      var allUsers = UserManager.Users.ToList(); // hack …
Run Code Online (Sandbox Code Playgroud)

asp.net-identity blazor blazor-server-side

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

在 Blazor 中转义“@”字符

简单的问题:如何在 Blazor 中转义“@”字符,以便在此示例中不会出现引用错误?

<script src="https://unpkg.com/@here/harp.gl/dist/harp.js"></script>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过“\@”和“\\@”

implementation reference mask blazor blazor-server-side

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

在 Blazor SPA 上嵌入 Leaflet 地图

如何在 Blazor SPA 上嵌入 Leaflet 地图、使用 JSInterop、应定义哪些对象以及如何将表示在地图上单击的位置的数据从 JavaScript 传递到 Blazor

leaflet blazor blazor-server-side blazor-client-side blazor-webassembly

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

System.InvalidOperationException:无法解析类型的服务 - 依赖注入

我正在开发一个 Web 应用程序 - 托管在 ASP.NET 上的 Blazor WebAssembly。我正在尝试开始从数据库获取价值(使用实体框架)。我在我的解决方案中使用存储库和工作单元模式。所以,我遇到了这个错误:

An unhandled exception has occurred while executing the request.
      System.InvalidOperationException: Unable to resolve service for type 'ReportApp.Core.Services.TaskService' while attempting to activate 'ReportApp.Server.Controllers.TaskController'.
         at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired)
         at lambda_method8(Closure , IServiceProvider , Object[] )
         at Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider.<>c__DisplayClass4_0.<CreateActivator>b__0(ControllerContext controllerContext)
         at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass5_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
      --- End of stack trace from previous location ---
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, …
Run Code Online (Sandbox Code Playgroud)

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

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

Blazor 发出 Javascript 来关闭浏览器窗口

我正在尝试从 Blazor 服务器页面关闭浏览器窗口。在 asp.net 中我会执行以下操作:

       Response.Write("<script>window.close();</script>")
Run Code Online (Sandbox Code Playgroud)

我如何在 Blazor 服务器页面上执行此操作?

谢谢

blazor blazor-server-side

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

Blazor - 如何为超出该数据类型最大值的值自定义 InputNumber 验证消息?

例如,如果我有一个底层数据类型为 int 的 InputNumber,我想显示一条消息,指出不允许大于 int.MaxValue 的数字。目前,如果我要尝试任何大于整数最大值的数字,我会收到一条默认消息:“该字段必须是数字”。该消息显然不正确,我想更改它。有没有办法在 Blazor 中做到这一点?

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

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

Blazor + 条件 HTML 注释

在 Blazor 服务器应用程序中,我尝试生成 HTML,该 HTML 将在电子邮件中呈现以供使用。

这意味着,服务器将基于模板生成完整的 HTML,我将其与各种数据位合并。

我想做的一件事是包含一些条件 HTML,以便它在 Outlook 中呈现良好,我想做的一些事情如下所述:https ://ourcodeworld.com/articles/read/139/all -您需要了解条件 html 评论

当我包含任何 html 注释时,Blazor 的渲染引擎会忽略它们并且不会将它们包含在输出中。

有什么方法可以强制 Blazor 的渲染器包含我的评论吗?

blazor blazor-server-side

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

在 Blazor 组件中使用 Javascript addEventListener

我有一个在服务器端呈现的 Blazor 组件。我想在里面有一些可折叠的div。然而,由于代码是服务器渲染的,因此不会执行 Javascript,因此这些部分不会崩溃。

这是我的文件中的代码script.js

var coll = document.getElementsByClassName("collapsible");
var i;

for (i = 0; i < coll.length; i++) {
    coll[i].addEventListener("click", function() {
        this.classList.toggle("active");
        var content = this.nextElementSibling;
        if (content.style.maxHeight){
            content.style.maxHeight = null;
        } else if(window.matchMedia("(max-width:1440px)")){
            // content.style.maxHeight = content.scrollHeight + "px";
            content.style.maxHeight = "20vh";
        } 
        else {
            content.style.maxHeight = "50vh";
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这是我的main.cshtml文件:

<component type="typeof(Main)" render-mode="Server" />

<script src="~/js/script.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

最后是我的Main带有可折叠部件的组件:

@using Microsoft.AspNetCore.Components;
@using Microsoft.AspNetCore.Components.Web;

<div class="collapsible">
    <label for="tutu">HEADER</label>
    <div id="mybtn" class="btn-rch"></div> …
Run Code Online (Sandbox Code Playgroud)

c# blazor blazor-server-side blazor-jsinterop

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