小编Abd*_*kim的帖子

blazor 中的 CSS 隔离不适用于预定义的表单元素

我有一个页面 foo.razor,它代表一个表单:

<EditForm Model=SomeModel>
    <InputText @bind-Value=SomeModel.Property1 />
    <InputText @bind-Value=SomeModel.Property2 />
    <p>a paragraph</p>
</EditForm>
Run Code Online (Sandbox Code Playgroud)

在它旁边我有一个独立的 CSS,foo.razor.css,例如:

input{
  display: block;
}
p{
  color: lime;
}
Run Code Online (Sandbox Code Playgroud)

段落的样式正确应用,但输入元素的样式不正确。我不明白为什么。

另外,我知道 blazor 会在编译后为元素生成随机 id。在浏览器中,我可以看到该段落具有这样的 id,但输入和表单元素却没有。

我尝试为组件添加类名并使用深度选择器,如下所示:

::deep .classname {
  .......
}
Run Code Online (Sandbox Code Playgroud)

但这也行不通。

blazor blazor-client-side blazor-webassembly

6
推荐指数
2
解决办法
3124
查看次数

如何绕过 blazor wasm 路由系统并调用服务器

我有一个 blazor wasm 托管应用程序,用户可以通过填写表单来创建帐户。创建帐户后,系统会向用户发送一封电子邮件,其中包含他/她必须点击的链接以确认他/她对电子邮件地址的所有权。该链接指向我的服务器中的操作方法。同一服务器托管 blazor wasm 应用程序和 API。

问题是,当用户单击该链接时,请求不会发送到服务器。相反,blazor 会拦截调用并尝试路由到页面。

我怎样才能做到这一点?如何创建一个指向我的服务器中的操作的链接,在单击时实际将其发送到服务器?换句话说,如果可能的话,如何绕过 blazor 的路由系统?

更新:

  • 我使用 Identity 作为后备存储(但这与我遇到的问题无关)。
  • 我使用基本控制器中的 Url 属性生成链接Url.Action("actionName", "controllerName", actionParam, Request.Scheme);。目前,该链接看起来像 https://localhost:5001/api/user/confirmaemail?confirmationtoken=xyz&useremail=abc
  • 该操作是后操作。
  • 当 blazor 尝试重定向到该页面时,显然不能,因为我没有具有此类路由的页面。<NotFound />因此会显示组件(App.razor 文件)内的内容。

注意: 这不是错误。这是 balzor wasm 的正常行为。如果应用程序托管在,则对(例如 )www.foo.com的所有调用实际上不会进行,但会被 blazor 拦截并视为应用程序中页面的路由。然而,这阻止了我,因为我的 API 与应用程序具有相同的基地址(应用程序目前位于 at ,API 位于),因此,当我单击链接时,blazor 会阻止对服务器的调用。问题是如何解决这个问题?如果不可能,我还需要哪些其他选项来实现此流程?foo.comwww.foo.com/barfoo.comlocalhost:5001/localhost:5001/api/xyz

c# asp.net-core blazor-client-side blazor-webassembly

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

如何从程序中打开 vscode 中的 peek 窗口

我正在用打字稿编写 vscode 的扩展。

在活动编辑器中的特定位置,我想打开一个查看窗口来显示特定文件的内容。像这个:

在此输入图像描述

但我不知道该怎么做。是否可以?如何?

visual-studio-code vscode-extensions

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