小编nog*_*ood的帖子

在 Blazor 中如何在页面加载(事件名称)时调用函数?

第一次进入 Blazor。

在开始模板中,我看到事件 btnClicked 是如何工作的。

对于按钮事件,它是这样的:

    <button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

    @code {

       private int currentCount = 0;

       private void IncrementCount()
       {
          currentCount++;
       }
    }
Run Code Online (Sandbox Code Playgroud)

当我不想在点击按钮上调用 IncementCount 时,它是什么代码行

但是在“onload page event”或者这个事件叫什么?

谢谢帮助

events call blazor

21
推荐指数
3
解决办法
2万
查看次数

报告本地时间而不是 UTC 服务器时间

我创建了一个页面,其中向用户显示服务器报告的天气数据。时间保存为 UTC,如何从 Blazor 服务器应用程序显示本地用户或浏览器的时间?

c# localization utc server blazor-server-side

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

Blazor:如何在 JSInterOP 调用后调用 StateHasChanged(在通过 JS resize 事件调整大小后尝试将浏览器解析为 Blazor 应用程序)?

在过去的几天里,我试图在我的 blazor 应用程序中读出浏览器分辨率。我尝试这样做:[JSInvokable] Blazor Methode 由 JS 脚本调用。

1.我的问题是:宽度和高度仅在我重新加载(手动刷新)页面后显示在我的blazorpage中。我无法调用 this.StateHasChanged() 因为我的方法是静态的。

我如何调用 StateHasChanged 或者我需要做什么才能显示新数据?我对 ASP.net 等还很陌生,所以如果可能的话请包含一个代码示例;)

这是我的 Code blazor (服务器端)代码:

@page "/"
@inject IJSRuntime jsRuntime
<h1>Window Dimensions</h1>

<p>Window Width: @Width</p>
<p>Window Height: @Height</p>
<p>@DebugString</p>

@code {
    public static int Width;
    public static int Height;
    public static string DebugString;

    [JSInvokable]
    public static async Task GetBrowserDimensions(int width, int height)
    {
        Width = width;
        Height = height;
        if (Width < 600)
        {
            DebugString = "small_UI";
        }
        if (Width >= 600)
        {
            DebugString = …
Run Code Online (Sandbox Code Playgroud)

c# window-resize blazor blazor-jsinterop

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

如何检查 Blazor 服务器应用程序中的 iframe 是否已完成加载内容?

我在 blazor 服务器应用程序的 Iframe 内加载不同的 html 页面。为了更改 Iframe 的内容,我使用了多个按钮。单击按钮时,相应的 Html 页面将加载到 Iframe 中(一个 Iframe - 不同的内容 - 通过单击按钮进行更改)。

点击后如何检查内容是否已完全加载?原因是,现在如果用户连续快速单击不同的按钮,则 Iframe 根本不显示内容(仅显示底层网格和摊位的背景颜色)。Iframe 加载完成后我可以取回 bool 值吗?

如果我有 Js 的知识,我就不会喜欢 Blazor。我找到了一些帖子,其中 js 是这个问题的解决方案,但是。我不知道如何正确地将其实现到我的 blazor 应用程序中。我不能简单地将 js 复制到 hmtlpage 中。它必须位于文件 _Host.cshtml 中,但如果我把它放在那里,...document.querySelector('myIframe').addEventListener... 在开发工具控制台中会说 null 。谢谢你的帮助。如果它与 js 有关,请善意地向我解释,就像向 nuub 解释一样(我是什么:)。

<script type="text/javascript">
        document.querySelector('myIframe').addEventListener("load", ev => {
            console.log('iframe is completely loaded');
        })
</script>
Run Code Online (Sandbox Code Playgroud)

javascript iframe blazor

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

如何在“普通”c# 类中使用/注入服务,例如 Blazor @inject ClassName classObject

我有一个 Blazor 项目,在 Startup.cs 中我添加了一个服务

        public void ConfigureServices(IServiceCollection services)
        {
           ....
            services.AddSingleton<Models.UserVisit>();
        }
Run Code Online (Sandbox Code Playgroud)

我可以在这样的 razor/blazor 页面上使用/访问该服务:

       @inject Models.UserVisit userVisitObj
Run Code Online (Sandbox Code Playgroud)

(UserVisit 是 Models 文件夹中的“普通”C# .cs 类)

我不知道如何在没有 razorpage 的普通 C# 类中使用这个“userVisitObj”(我将在其中使用@inject)?

我如何在这里使用它(同一项目中的普通 C# 类,但没有 blazor/razor-componentpage):

public class UserModel
{
    [BsonId]
    public Guid Id { get; set; }
    public CultureInfo UserCultureInfo { get; set; }
    ...

    public UserModel()
    {
        [Inject]
        Models.UserVisit userVisitObj;   // THAT DOESN'T WORK -- ERROR
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望我能让我的问题有点清楚(请善待我仍然是初学者)。

c# service class inject blazor

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

在 Blazor 中将值从子组件传递到父页面的良好做法?

我不确定使用我的方法将对象从子组件传递到其在 Blazor 中的消费父页面是否犯了错误。我有一个带有 ID、名称的 poco 类。具有从 poco 类对象列表中选择 div 的组件。用户选择一个条目,该条目应显示在父页面上。我缺乏经验,看不出我的解决方案有任何问题。1)我做对了吗?2)如果一切都好的话,OnInitializedAsync() 没有等待(父级),我应该使用 OnInitialized() 代替吗?3)Dispose的使用是否正确?4)如果我在一个应用程序中针对不同组件等使用相同的方法可能 20 次,那么这个解决方案可以吗?这个规模可以吗?谢谢,不行

父页面:

@page "/"
@inject MitarbeiterEventService MitarbeiterEventService

@implements IDisposable

<h1>ParentPage</h1>
<MitarbeiterSel></MitarbeiterSel>
<br />

@if (SelMitarbeiterFromChild != null)
{
    <p>Selected Obj. from Child: @SelMitarbeiterFromChild.Name </p>
}

@code{
    public MitarbeiterLite SelMitarbeiterFromChild;

    protected override async Task OnInitializedAsync()
    {
        MitarbeiterEventService.EventMitarbeiterChangedInComp += HandelOnMitarbeiterChangedInComp;
    }

    public async void HandelOnMitarbeiterChangedInComp(object sender, MitarbeiterLite selMitarbeiter)
    {
        SelMitarbeiterFromChild = selMitarbeiter;

        await InvokeAsync(() =>
        {
            StateHasChanged();

        });
    }

    public void Dispose()
    {
        MitarbeiterEventService.EventMitarbeiterChangedInComp -= HandelOnMitarbeiterChangedInComp;
    }
} …
Run Code Online (Sandbox Code Playgroud)

events parent-child blazor

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

我使用 MongoDB C# 驱动程序 FindAsync 的方式是否有缺陷?

对于 C# 来说还是比较陌生。我的代码给了我想要的结果,但我不确定我是否以正确的方式实现了它。如果您想回答,请详细说明。我的目标是通过 搜索我的 MongoDB 中的条目FindAsync。这是我的代码:

public async Task<List<T>> SearchDocAsync<T, U>(string collection,
    string findFieldName, U findValue)
{
    var _collection = db.GetCollection<T>(collection);
    var filter = Builders<T>.Filter.Eq(findFieldName, findValue);
    var result = await (_collection.FindAsync(filter).Result.ToListAsync());
    return result;
}
Run Code Online (Sandbox Code Playgroud)

这是我在 WinForms 中的调用方式:

private async void BtnReadAll_Click(object sender, EventArgs e)
{
    var asyncResults = await myMongoAux.SearchDocAsync<MyTModel, string>(
        myCollectionName, "MyDBString", "TestString");
    foreach (var r in asyncResults)
    {
        RtxbxResult.Text += $"{r.MyDBInt}\t{r.MyDBString}\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

这安全吗?我不应该使用 a using(但如何使用)?我读过一些关于你应该使用的内容:

配置等待(假)

如何以及为何?

非常友善,帮助我了解更多。感谢您的时间。:)

c# using-statement winforms async-await mongodb-.net-driver

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