小编Ami*_*adi的帖子

DateTime.Now 相当于 TimeOnly 和 DateOnly?

.NET 6 / C# 10 引入了TimeOnlyDateOnly结构,分别表示仅时间和日期。

好的旧DateTime结构总是有一个Now静态属性,它可以为您提供当前的日期和时间。

我期望TimeOnlyDateOnly结构具有相似的静态属性;喜欢TimeOnly.NowDateOnly.Today,但他们显然不喜欢。

那么,如果我想要一个DateOnly代表当前日期的对象,或者TimeOnly代表当前时间的对象,该怎么办呢?

我还想知道为什么他们决定不在这两个新结构中包含类似的属性?

c# datetime .net-6.0 c#-10.0 dateonly

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

如何获得元素的顶部位置?

是否可以使用javascript/jquery获取元素的顶部位置?

如果重要的话,元素是一个表.

javascript jquery

61
推荐指数
3
解决办法
10万
查看次数

"(空格)字符在InnerText中被忽略

我正在尝试创建一个函数(在JavaScript中)通过在每个(例如)300毫秒(在<p>标记中)逐个编写其字母来编写句子.我写过:

        var text = ["H", "e", "l", "l", "o", " ", "h", "o", "w", " ", "a", "r", "e", "y", "o", "u", "?"]
        function typeText() {
            var i = 0;
            var interval = setInterval(function () {
                var parag = document.getElementById("theParagraph");
                var paragOldText = parag.innerText;
                parag.innerText = paragOldText + text[i];
                i++;
                if (text.length == i)
                    clearInterval(interval);
            }, 200)
        }
Run Code Online (Sandbox Code Playgroud)
<body>
    <p id="theParagraph"></p>
    <button id="typeButton" onclick="typeText()" style="padding:15px">Start typing the sentence</button>
</body>
Run Code Online (Sandbox Code Playgroud)

如您所见,数组中有一些""(空格)字符; 问题是它没有写那些空格,所以句子就像这样:"Hellohowareyou".我该如何解决这个问题?

html javascript

23
推荐指数
2
解决办法
4407
查看次数

Blazor 中的 StateHasChanged() 与 InvokeAsync(StateHasChanged)

我知道调用该StateHasChanged()方法会通知组件状态已更改,因此它应该重新渲染。

但是,我也看到调用await InvokeAsync(StateHasChanged)await InvokeAsync(() => StateHasChanged())在其他人的代码中,但我不太明白它与其他人的代码有何不同StateHasChanged()以及应该在何处选择一个,以及为什么.

我能找到的唯一信息是Blazor 文档的这一部分,它说:

如果必须根据外部事件(例如计时器或其他通知)更新组件,请使用 InvokeAsync 方法,该方法分派到 Blazor 的同步上下文。

我不太明白这个。它只是说“......它调度到 Blazor 的同步上下文”,但我对此不太满意!什么是“Blazor 的同步上下文”?

我试过在 a的事件中调用StateHasChanged()- 而不是InvokeAsync(StateHasChanged)- ,它按预期工作,没有任何问题。我应该打电话吗?!如果是这样,为什么?我觉得这里可能有一些我不知道的重要细微差别。TimerElapsedawait InvokeAsync(StateHasChanged)

我也看到过类似的电话InvokeAsync(() => InvokeAsync(Something)),为什么?

另外,我有时也会看到InvokeAsync()没有调用await,那有什么关系?!

blazor blazor-server-side blazor-webassembly

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

宽度:绝对定位元素的 100% 大于父元素

我有一个宽度和高度未知的 div,这个 div 是一个更大的 div 的子节点之一。

#myDiv {
    /* Blah blah blah */
}

#inner {
    position: absolute;
    width: 100%;
    height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<div id="myDiv">
    <div id="inner"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

但问题是#innerdiv 不适合,#myDiv当它的宽度和高度设置为 时,它比它的父级大得多100%

我究竟做错了什么?

html css

12
推荐指数
3
解决办法
8655
查看次数

是否应该在网络应用中禁用延迟加载Entity Framework?

我听说您必须在Web应用程序中禁用EF的延迟加载功能。(ASP.NET)。例如,这里这里

现在我真的很困惑,因为我一直认为应该始终启用延迟加载。所以现在我的问题是:从性能上来说,禁用Web应用程序中的延迟加载是否真的是一个更好的主意。如果是,请问有谁能解释原因并提出利弊?

c# asp.net asp.net-mvc entity-framework lazy-loading

8
推荐指数
3
解决办法
718
查看次数

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 中的布局?

我有一个布局 ( MainLayout.razor),它有一个名为ShowFooter. 在某些页面上,我希望能够将该标志设置为true,而将其他一些设置为false

我还没有找到任何关于页面(即带有路由的组件)如何与其布局进行通信的明确说明。这可以/应该如何在 Blazor 中完成?

注意:您可能建议使用 2 种布局,一种有页脚,一种没有页脚,但这并不能真正解决我的问题,我希望能够在同一页面的不同时间显示和隐藏页脚。另外,这只是需要在布局和页面之间进行通信的一种情况。还有无数其他的。

blazor blazor-server-side blazor-webassembly

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

防止在 Blazor 中的输入中键入非数字

在 Blazor 应用程序中,我有一个<input type="text" />,并且我正在尝试执行某些操作,以便无法在其中输入非数字字符。

这是我到目前为止所做的,看起来效果很好:

<input type="text" @bind="InputContent" @bind:event="oninput" />

@code {
    string inputContent;
    string InputContent
    {
        get => inputContent;
        set => inputContent = StripNonDigits(value);
    }

    string StripNonDigits(string str)
    {
        return new String(str.Where(c => char.IsDigit(c)).ToArray());
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想知道:

  • 还有哪些其他方法可以实现这一目标:“监视并可能修改用户输入的内容,特别是在 Blazor 中。” 例如,这可以在不使用 的情况下实现吗@bind
  • 我的做法是否存在潜在问题?或者说这是一个最优解?

在 JS 中,要做同样的事情,您将监听oninput事件,如果输入的字符不是数字,则执行event.preventDefault(). 据我所知,在 Blazor 中你不能完全做到这一点,对吗?

blazor blazor-server-side blazor-webassembly

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

如何在 Blazor 中单击按钮时渲染组件?

我是 SPA 框架和 Blazor 的新手,因此这可能是一个很容易回答的问题,尽管我在其他地方找不到答案。

我想在用户单击特定按钮后立即在页面上的某个位置显示一个组件。我目前是这样实现的:

@page "/test"

<button type="button" @onclick="() => showSignUpComponent = true">
    Show Sign Up Window
</button>

@if (showSignUpComponent)
{
    <SignUp />
}

@code {
    bool showSignUpComponent;
} 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好、更干净的方法(即正确的方法)在 Blazor 中执行类似的操作,或者这是常见的“标准”方法?

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

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