Blazor是一个Web框架,允许开发人员在.NET中编写客户端代码。它是ASP.NET Core的一部分,称为“Razor Components”。
在具有交互式渲染的 Blazor Web 应用程序中访问自定义 AuthenticationStateProvider 内请求的 HttpContext 是否安全?
虽然有很多与 Blazor 和身份验证相关的问题,但我没有看到这个特定的问题,所以我想我会在这里问它。 我是 blazor 新手,正在努力实施 cu...
为什么我的 Blazor Web 应用程序在部署到 Azure 应用服务时使用 OpenIddict 进行身份验证时抛出 SocketException?
我有一个使用交互式服务器渲染模式运行的 Blazor Web 应用程序,以及一个使用 OpenIddict 构建的 ID 提供程序。 Blazor 应用程序配置为使用 Microsoft OpenIdConnectHandler,本质上
使用 EF Core 获取 EditForm 数据(带或不带跟踪)的正确方法是什么?
我有一个 Blazor EditForm,我使用 Model 将其与对象关联并绑定控件。 EditForm 模型 =“@Client”OnValidSubmit =“SubmitForm” 我使用 EF Core 来带数据...
输入始终显示 4 位小数。 有没有办法限制为2? 我尝试过在数据库中进行 math.round,我尝试过使用 f2 的格式,但似乎我没有做任何事情...
我正在使用 Grid.Blazor 库在 Blazor 应用程序上渲染服务器端网格。其中一列有一个带有单击事件的按钮。因此,当单击按钮时,网格行事件也会与按钮一起触发
如果“Routes”组件中没有设置渲染模式,理论上它应该像“App”组件一样渲染为静态服务器端, 这意味着什么? 它有什么影响
为什么当我提交表单时,我的 blazor 中的属性总是变为空
这是我的代码: 据我所见,我正在创建该类的一个新实例,将每个属性绑定到表单中的类,然后转换为 JSON 并打印。我缺少什么? @注入
NavigationException:Blazor 中的“Exception_WasThrown”
我尝试导航到另一个页面,但每次都会出现异常:“Microsoft.AspNetCore.Components.NavigationException:Exception_WasThrown”。你现在知道我需要做什么或者是什么吗
当子控件中的属性发生更改时,使用两种方式数据绑定在父控件中触发回调的推荐方法是什么? 我尝试过关注,但没有触发
ServerAuthenticationStateProvider 报告 Win32Exception: 主域与受信任域之间的信任关系失败
我有一个只有一页的 blazor 服务器应用程序 索引剃刀 @页 ”/” 您看到这一点是因为您拥有sample_role ...
使用overflow-x-auto(引导程序)围绕表格进行划分,但整个页面变得可滚动
我正在使用 Blazor,其中我有一个组件来加载单独的表(带有搜索和使用排序的选项)。我的桌子周围有一个带有溢出x-auto类的div,但它仍然使整个p......
如何从数据库加载用户角色并在 blazor wasm 中分配给用户
我有一个托管在 ASP.NET Core 中的 Blazor WebAssembly (WASM) 应用程序,它使用默认的 ASP.NET Core Identity 对用户进行身份验证。 在 Program.cs 的服务器项目中,我有以下代码: 建设者.服务.
我有一个使用 Blazorise 的 Blazor 应用程序。我有一个密码重置对话框,效果很好,但是当将密码发送到服务器时,我会进行检查以验证密码是否已...
我正在构建什么 我正在使用 .NET 8.0 构建 Blazor(交互式服务器)Web 应用程序 机器与软件 我使用的是配备 macOS Sonoma 和 Rider 2024.2 的 Mac Pro(Intel 2019)。所有软件...
如何显示 MudSelect 文本而不是当前所选项目的 MudSelect 值?
我的 blazor 代码中有以下 MudSelect 下拉菜单: 我的 blazor 代码中有以下 MudSelect 下拉菜单: <div class="w3-col m12 w3-padding"> <MudSelect T="string" @bind-Text="Input.Reference" @bind-Value="Input.ReferenceId" For="()=>Input.Reference" Margin="Margin.Dense" Variant="Variant.Outlined" Label="Select An Option"> @foreach (ReferenceData reference in referenceData) { <MudSelectItem [email protected]>@leadReference.ReferenceText</MudSelectItem> } </MudSelect> </div> 选择新项目后,如何在 @leadReference.ReferenceText 中显示 @reference.ReferenceId 而不是 MudSelect? 编辑: 建议的答案不起作用,因为@reference.ReferenceId可以重复 您可以绑定引用本身,而不是将引用.ReferenceId 绑定到 MudSelect。 然后使用 ToStringFunc 属性,您可以设置对象如何显示为字符串。 设置 T="ReferenceData"、ToStringFunc="x => x.ReferenceText"、@bind-Value="Input.Reference",Input.Reference 的类型为 ReferenceData。 <MudSelect T="ReferenceData" @bind-Value="Input.Reference" ToStringFunc="x => x.ReferenceText" ... > @foreach (ReferenceData reference in referenceData) { <MudSelectItem Value=@reference>@leadReference.ReferenceText</MudSelectItem> } </MudSelect> 如果您无法修改输入,请使用值的占位符。并使用 ValueChanged 设置 input.ReferenceId 的值 <MudSelect T="ReferenceData" Value="referenceData" ValueChanged="((e) => ReferenceChanged(e, Input)" ToStringFunc="x => x.ReferenceText" ... > private ReferenceData _referenceData private void ReferenceChanged(ReferenceData referenceData, Input input) { input.ReferenceId = referenceData.ReferenceId; } 两者的片段
客户端中的 Blazor Web 应用程序导航管理器 -> Exception_WasThrown
我正在使用 VS2022 创建 Blazor Web 应用程序。以下是项目概述: 在客户端项目的代码部分中使用 NavigationManager 时,出现 Exception_WasThrown 错误: 这里是...
我正在编写我的第一个 Blazor 服务器端应用程序 (.NET 8),并且我正在努力解决身份验证逻辑:当注入到服务中时,用户/身份验证信息为空。 我有一个简单的服务...
我正在学习 Blazor 混合,我找不到删除主页上填充的方法。 这是我的代码 身体{ </desc> <question vote="0"> <p>我正在学习 Blazor Hybrid,但找不到删除主页上填充的方法。 这是我的代码</p> <pre><code><div class="box1"> </div> <style> body{ background-color:brown; } .box1{ width:100%; height:100px; background-color:yellow; } </style> </code></pre> <p>结果如下: <a href="https://i.sstatic.net/6S6k1.png" rel="nofollow noreferrer"><img src="https://cdn.txt58.com/i/AWkuc3N0YXRpYy5uZXQvNlM2azEucG5n" alt="enter image description here"/></a></p> <p>我想要左上角的黄色框。</p> <p>我尝试在 MainLayout.razor 中更改内容,如下所示:</p> <pre><code><main> <article class="content px-0"> @Body </article> </main> </code></pre> <p>将 px 设置为 0</p> <p>我还尝试完全删除课程“内容”。 这删除了顶部填充,但没有删除左侧填充,如下所示: <a href="https://i.sstatic.net/cdwHd.png" rel="nofollow noreferrer"><img src="https://cdn.txt58.com/i/AWkuc3N0YXRpYy5uZXQvY2R3SGQucG5n" alt="enter image description here"/></a></p> <p>有人知道如何实现我的目标吗?</p> </question> <answer tick="true" vote="3"> <p>这就是原因。请注意您可能一直在与之斗争的 !important 的使用。</p> <p>MainLayout.razor.css</p> <pre><code>@media (min-width: 641px) { ... .top-row, article { padding-left: 2rem !important; padding-right: 1.5rem !important; } } </code></pre> </answer> <answer tick="false" vote="0"> <p>在 MainLayout.razor 中你会看到</p> <pre><code> <article class="content px-4"> @Body </code></pre> <p>删除 px-4 和 MainLayout.razor.css 内部</p> <pre><code>.top-row, article { padding-left: 2rem !important; padding-right: 1.5rem !important; } </code></pre> <p>要么注释掉它,要么将填充设置为0px 然后它会从一个边缘移动到另一个边缘</p> </answer> </body></html>
我正在编写我的第一个 Blazor 服务器端应用程序 (.NET 8),并且我正在努力解决身份验证逻辑:当注入到服务中时,用户/身份验证信息为空。 我有一个简单的服务...
我希望我的程序能够区分短按和长按。当短按(单击)时它可以工作,但是当我按住鼠标时 @onmousedown 永远不会被调用。这是为什么? 我希望我的程序能够区分短按和长按。当短按(单击)时它可以工作,但是当我按住鼠标时 @onmousedown 永远不会被调用。这是为什么? <li @onmousedown="MouseDown" @onmouseup="MouseUp"> ... </li> DateTime mouseDownTme; void MouseDown() { mouseDownTme = DateTime.UtcNow; } void MouseUp() { long milliseconds = (DateTime.UtcNow.Ticks - mouseDownTme.Ticks) / TimeSpan.TicksPerMillisecond; if (milliseconds > 400) { //long press Console.WriteLine("long press"); } else { //short press Console.WriteLine("short press"); } } 编辑: 这段代码有效。真正的问题是我试图在 .NET MAUI Blazor 中执行此操作。我也在正常的 blazor 环境中测试了它,但似乎我在那里犯了一个错误,因为再次测试证明它是有效的。有谁知道我可以在哪里将此问题重新报告给 .NET MAUI Blazor? 您应该使用 OnPointerDown 和 OnPointerUp,它们适用于触摸和鼠标;) GitHub 中的完整示例 您可以组合 @onmousedown 和 @onmouseup: //Code behinde private DateTime time1 { get; set; } private DateTime time2 { get; set; } <li @onmousedown="() => { time1 = DateTime.Now; }" @onmouseup="() => { time2 = DateTime.Now; }"> Click me </li> @if ((time1.Ticks - time2.Ticks)/ TimeSpan.TicksPerMillisecond > 400) { <p>Long press</p> } else { <p>short press</p> } 由于我在使用 MAUI Blazor 时遇到了同样的问题,我终于找到了适合我的解决方案: 我有一些像这样的代码可以在画布元素上绘制: <canvas @onpointerdown=this.OnPointerDown @onpointerout=this.OnPointerOut @onpointerup=this.OnPointerUp @onpointermove =this.OnPointerMove> onpointerdown 和 onpointermove 触发一次,onpointerup 仅在“快速单击”时触发,而无需长按。在 Blazor 服务器应用程序中使用此代码时,一切正常。 长按时似乎会触发其他触摸事件(例如滚动或缩放?)。 最后我将以下 CSS 添加到画布中 touch-action:none; 最终得到这样的代码: <canvas style="touch-action:none;" @onpointerdown=this.OnPointerDown @onpointerout=this.OnPointerOut @onpointerup=this.OnPointerUp @onpointermove =this.OnPointerMove> 这效果很好:-) 我已经为 onlongpress 创建了一个包,所以请尝试一下: https://www.nuget.org/packages/Kebechet.Blazor.EventHandlers.LongPress 文档: https://github.com/Kebechet/Blazor.EventHandlers.LongPress 适用于普通 Blazor 和 Maui Blazor