我看到很多关于从同步方法调用异步方法的问题,例如:How to call asynchronous method from synchronous method in C#?
我理解这些解决方案,但是,通过实验,我发现我不需要添加.Wait()
orTask.Run(async () => await MyAsyncMethod())
来使其同步运行。我有一个从数据库中提取信息的 get 方法。
我的代码如下,当我运行时,它会等待var task = GetItemAsync()
,然后我从数据库中得到正确的结果。我发现很难相信数据库调用可以在代码继续运行之前返回,这似乎意味着它是同步运行的。我错过了什么吗?
public object GetItem()
{
var task = GetItemAsync();
var result = task.Result;
return result
}
Run Code Online (Sandbox Code Playgroud) 我想在 blazor 的布局页面中包含可自定义的内容。我尝试向布局添加一个RenderFragment
参数,并在组件中添加同名的化妆品,但它没有在我的布局中呈现。
layout.razor
<header>
@HeaderContent
</header>
@body
@code
{
[Parameter]
public RenderFragment HeaderContent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
component.razor
<HeaderContent>
<p>my page specific content</p>
</HeaderContnt>
Run Code Online (Sandbox Code Playgroud)
但它HeaderContent
是在体内呈现的。有人能解释一下如何做到这一点吗?或者为什么它在布局中不可能?我发现有效的唯一方法是这样,但如果我更改 RenderFragment 中的绑定参数,它不会刷新内容。
我有一个 Bootstrap list-group-flush 来显示左垂直导航。
我想让左上角变圆。class="rounded-top"
有效,但是class="rounded-top-left"
,还是class="rounded top-left"
什么都不做?
如何使列表包含通用接口的所有不同实现?
例如
public class Animal { // some Animal implementations }
public class Dog : Animal { // some Dog implementations }
public class Snake : Animal { // some Snake implementations }
public interface ICatcher<T> where T: Animal
{
// different animals can be caught different ways.
string Catch(T animal);
}
public class DogCatcher : ICatcher<Dog>
{
string Catch(Dog animal) { // implementation }
}
public class SnakeCatcher : ICatcher<Snake>
{
string Catch(Snake animal) { // implementation }
} …
Run Code Online (Sandbox Code Playgroud) 我有一个 Blazor WebAssembly 应用程序,托管在公司网络的内部服务器上,例如:https://internal.domain.com/app。该应用程序可通过反向代理从外部访问:https://external.domain.com/app。
在 Blazor/C# 代码中,我们使用 .NET CoreNavigationManager
设置一些重定向、路径等,这些在内部访问时可以完美运行。但在外部访问时我们遇到了一个问题,因为 的NavigationManager
URI 值是使用内部服务器地址返回的。
我们有一些代码将 HTML<base>
元素的 href 值设置为应该拾取的外部地址NavigationManager
。但是,导航管理器返回/期望的值仍然是内部地址,这会导致我们的路径和重定向出现问题。如文档中所述,NavigationManager.BaseUri
通常:
...对应于
href
文档<base>
元素上的属性。
我找不到有关上述声明或如何/是否可以初始化导航管理器的基本 URI 的其他信息。
有谁知道.NET Core 如何NavigationManager
使用 HTML Base 元素?在这种情况下如何设置使用外部地址?
TIA
编辑:
下面是登录场景的示例代码:
index.html
包含一些 JavaScript 来设置<base>
元素和相应的外部 URL。检查页面标记时,使用外部 URL 按预期设置基本 href 值。App.razor
对RedirectToLogin.razor
组件的任何未经身份验证的请求。Navigation.Uri
(类似于 的绝对值Navigation.BaseUri
)。根据文档,这应该使用基本 …我对input[type=number]
元素有一个奇怪的 CSS 行为,导致该集合background-color
无法应用。该color
样式已正确应用于输入的文本,并且 Chrome 的开发工具将背景颜色显示为在元素上处于活动状态,但实际输入值使用不同的背景颜色呈现(浅灰色而不是黑色 #000,如图所示) 。
有人经历过这种行为吗?是否有其他 CSS 属性可能导致此问题?
对此的任何建议或解决方案都非常感谢。提前致谢!
c# ×3
blazor ×2
.net-core ×1
asp.net-core ×1
asynchronous ×1
bootstrap-4 ×1
covariance ×1
css ×1
generics ×1
html ×1
invariance ×1
layout ×1
rendering ×1