Blazor是一个Web框架,允许开发人员在.NET中编写客户端代码。它是ASP.NET Core的一部分,称为“Razor Components”。
我正在为我的 Blazor 应用程序 MainLayout 使用 Radzen 布局组件 但侧边栏扩展并不像文档中那样工作。如果我单击切换按钮,侧边栏不会折叠或展开。 @
有没有办法在 Main() (program.cs) 中获取 Web 应用程序域?
当我的应用程序启动时,我想让它动态创建 sitemap.txt。这样做需要我拥有网站的域名,该域名对于开发和生产插槽来说是不同的。 有没有办法...
Blazor 的 DxUpload 组件上永远不会触发 SelectedFilesChanged 事件
我尝试从 DevExpress 实现文件上传器组件,如下所示: @inject NavigationManager 导航管理器 我尝试像这样实现 DevExpress 的文件上传器组件: @inject NavigationManager NavigationManager <div id="file-upload-dropzone" class="card custom-dropzone rounded-3 w-100 m-0"> <span class="drop-file-icon mb-3"></span> <span class="drop-file-label">Drop image(s) anywhere to upload</span><span class="m-1">or</span> <DxButton Id="file-upload-browse-button" CssClass="m-1" RenderStyle="ButtonRenderStyle.Primary" Text="Browse" /> </div> <DxUpload Name="file" Visible="@UploadVisible" ExternalSelectButtonCssSelector="#file-upload-browse-button" ExternalDropZoneCssSelector="#file-upload-dropzone" ExternalDropZoneDragOverCssClass="custom-dropzone-hover" UploadUrl="https://localhost:7226/api/Upload/Upload/" SelectedFilesChanged="@SelectedFilesChanged" MaxFileSize="15000000"> </DxUpload> @code { bool UploadVisible { get; set; } = false; protected void SelectedFilesChanged(IEnumerable<UploadFileInfo> files) { UploadVisible = files.ToList().Count > 0; InvokeAsync(StateHasChanged); } protected string GetUploadUrl(string url) { var test = NavigationManager.ToAbsoluteUri(url).AbsoluteUri; return test; } } 样式很棒,当我单击按钮时,Windows 文件选择器窗口会打开,但 SelectedFilesChanged 事件永远不会触发。 我基本上遵循了here的确切示例。 我错过了什么? 我想通了。事实证明,解决方案是多种因素的结合。对于我之前有这样的格式限制: AcceptedFileTypes="@(new List<string> { "ndpi", "scn", "svs", "czi" })"> 我没有在文件格式之前添加点,这是我的错误的基础。我尝试取消限制,但没有成功。事实证明,这是因为我只使用了热重载功能,而没有重新启动应用程序。由于某种原因这还不够。
在 Web 程序集客户端 blazor 应用程序中运行时获取构建版本号的最佳方法是什么? 在服务器端版本中,我可以使用 Assembly.GetEntryAssembly().GetCustomAttribute<
进行主要选择时,MudBlazor MudSelect 错误地显示列表中的第一项而不是所选值
我正在使用 MudBlazor 开发 Blazor 应用程序,并且在用于选择次要肌肉群的 MudSelect 组件方面遇到问题。当主要肌肉收缩时就会出现问题
如何使用 Windows NTLM 身份验证进行 Blazor WebAssembly SignalR
在我当前的一个项目中,我们决定尝试一下 Blazor WebAssembly,因为 blazor 服务器端工作得很好,但由于所有原因,在与 Web 控件交互时当然会出现一些延迟。
我有两个项目,一个使用 MAUI,另一个使用 Blazor,我是否有机会在这两个项目之间共享一个通用 css 文件? 我已经尝试将其添加到共享项目中,但是问题...
我已使用 Microsoft Entra 在 Blazor 中设置身份验证,效果很好。然而,我需要更多的声明,并在 Entra 中添加了另外三个声明: 但当我看到用户在 co 中的声明时...
使用 Azure 中发布的 Blazor 的自定义团队应用程序无法正常工作
我正在开始在 Visual Studio 2022(不是 Visual Studio Code)中创建 Teams 应用程序 Blazor,我已经使用我下载的另一个自定义团队应用程序创建了 Teams 应用程序,修改后它工作正常
如何在 Blazor 8 中单击更改 URL 片段或哈希的链接时触发 navigationManager.LocationChanged?
在 Blazor 7 Web 程序集项目中,单击链接(登录、注册或忘记密码)后将触发以下代码的 _navigationManager_LocationChanged。同样的事件不是...
我想知道是否有推荐的方法在代码中将字符串转换为 RenderFragment。 现在我正在这样做: RenderFragment 片段 = @@myString; 但我不知道这是否...
blazor 中是否有选项可以在其他页面中加载页面。 Html.RenderPartial("page"); 的一个版本 这就是我在 asp.net core 中的内容 blazor 中是否有一个选项可以在另一个页面中加载一个页面。 Html.RenderPartial("page"); 的一个版本 这是我在asp.net core中的 <div class="row"> <div class="col-md-3"> <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical"> <a class="nav-link active" id="v-pills-setting-tab" data-toggle="pill" href="#v-pills-setting" role="tab" aria-controls="v-pills-setting" aria-selected="true">Setting</a> <a class="nav-link" id="v-pills-intent-tab" data-toggle="pill" href="#v-pills-intent" role="tab" aria-controls="v-pills-intent" aria-selected="false">Intents</a> <a class="nav-link" id="v-pills-train-tab" data-toggle="pill" href="#v-pills-train" role="tab" aria-controls="v-pills-train" aria-selected="false">Train</a> </div> </div> <div class="col-md-9"> <div class="tab-content" id="v-pills-tabContent"> <div class="tab-pane fade show active" id="v-pills-setting" role="tabpanel" aria-labelledby="v-pills-setting-tab"> @{ Html.RenderPartial("Setting"); } </div> <div class="tab-pane fade" id="v-pills-intent" role="tabpanel" aria-labelledby="v-pills-intent-tab"> @{ Html.RenderPartial("Intents"); } </div> <div class="tab-pane fade" id="v-pills-train" role="tabpanel" aria-labelledby="v-pills-train-tab"> @{ Html.RenderPartial("../Conversation/Index"); } </div> </div> </div> </div> 我只是不确定如何在 blazor 中重现这样的东西。我查看布局,但我不想覆盖完整布局,我只想在页面之间分隔我的实体。 这就是组件的用途。 我建议您在 YouTube 或 https://blazor-university.com/ 上查找教程系列(如果您更喜欢文本),因为组件将是首先教授的内容之一。 如果您已经有经验,那么学会放弃它可能比学习 Blazor 更难(我认为这在很大程度上非常简单)。 无论如何,这就是我的经历。 :D @page "/redirect" @inject NavigationManager NavManager <h1>Redirect Page</h1> <p>Redirecting to Default Page</p> @code { protected override void OnInitialized() { NavManager.NavigateTo("/"); } } 那会起作用的。 我不是来上学的,你像个孩子一样,因为这里的一些人似乎一心想要做出“去其他地方读更多书”类型的回应。 大多数人通过示例来学习,而不是通过抽象到文档链接来学习。
无法在适用于 Windows 的 Mac OS 上构建 Blazor 应用程序
我从运行 Windows 11 的 HP 笔记本电脑切换到运行 Sonoma 的 Mac Book。 我的 Balzor 应用程序保存在 Git 存储库中。 在 Windows 笔记本电脑上,我能够毫无错误地构建和运行该应用程序。 上...
我使用个人帐户创建了一个 Blazor Web 应用程序自动渲染模式项目,在 PersistingRevalidatingAuthenticationStateProvider 中它只扮演一个角色: var 角色 = 主体.FindFirst(opt...
使用 blazor,我在代码周围收到不可为空的警告。这些警告似乎是错误的,但是解决它们会引入大量代码,其唯一目的是隐藏警告,而值...
选择年级 <div class="form-floating mb-3"> <select class="form-control" @bind="Input.SelectedGradeId"> <option value="">Select Grade</option> @if (Input?.Grades != null) { @foreach (var grade in Input.Grades) { <option value="@grade.Id"> @grade.Id - @grade.Level </option> } } </select> <label for="grade" class="form-label">Grade</label> <ValidationMessage For="() => Input.SelectedGradeId" class="text-danger" /> <p>selected grade = @Input.SelectedGradeId</p> </div> <div class="form-floating mb-3"> <InputSelect class="form-control" @bind-Value="Input.SelectedOrgUnitId"> <option value="">Select Org Unit</option> @if (Input?.OrgUnits != null) { @foreach (var orgUnit in Input.OrgUnits) { <option value="@orgUnit.Id"> @orgUnit.Id - @orgUnit.UnitName </option> } } </InputSelect> <label for="org-unit" class="form-label">Org Unit</label> <ValidationMessage For="() => Input.SelectedOrgUnitId" class="text-danger" /> <p>selected org.unit = @Input.SelectedOrgUnitId</p> </div> 当我选择一个下拉列表时,该值保持为空,这导致表单无法提交。 private sealed class InputModel { [Required] [Display(Name = "Grade")] public int SelectedGradeId { get; set; } [Required] [Display(Name = "Organization/Unit")] public int SelectedOrgUnitId { get; set; } public List<Grade> Grades { get; set; } = new List<Grade>(); public List<OrgUnit> OrgUnits { get; set; } = new List<OrgUnit>(); } 这是模型 当我第一次尝试提交它时,它说外键有问题,但是当我尝试从 ssms 手动插入值时,它已成功更新,因此可以肯定数据库关系中没有问题。 但是当我在下面添加验证器时: private async Task OnValidSubmitAsync() { Console.WriteLine($"Selected Grade ID: {Input.SelectedGradeId}"); Console.WriteLine($"Selected Org Unit ID: {Input.SelectedOrgUnitId}"); // Validation against the database var selectedGrade = await DbContext.Grades.FindAsync(Input.SelectedGradeId); var selectedOrgUnit = await DbContext.OrgUnit.FindAsync(Input.SelectedOrgUnitId); if (selectedGrade == null) { Console.WriteLine("Invalid Grade selected."); RedirectManager.RedirectToCurrentPageWithStatus("Error: Invalid Grade selected.", HttpContext); return; } if (selectedOrgUnit == null) { Console.WriteLine("Invalid Org Unit selected."); RedirectManager.RedirectToCurrentPageWithStatus("Error: Invalid Org Unit selected.", HttpContext); return; } // Update user profile user.GradeId = Input.SelectedGradeId; user.OrgUnitId = Input.SelectedOrgUnitId; var updateResult = await UserManager.UpdateAsync(user); if (!updateResult.Succeeded) { RedirectManager.RedirectToCurrentPageWithStatus("Error: Failed to update profile.", HttpContext); return; } await SignInManager.RefreshSignInAsync(user); RedirectManager.RedirectToCurrentPageWithStatus("Your profile has been updated", HttpContext); } 它说我无法提交,因为所选项目无效,所以可能是因为返回值为空。 我尝试使用 @onchange、@bind-Value、InputSelect 组件,但它仍然不起作用。并且我已确保数据类型一致。 您可能只需添加行 @rendermode InteractiveServer: @page "/xxx" @rendermode InteractiveServer //the EditForm and the rest
我一直在寻找使用 Blazor 从数据库中删除行的方法。我一直在尝试,但遇到了需要长代码的问题,我想让我的项目保持简单。 我的代码: @pa...
为 EF Core 定义类时,字符串属性为 [必需] 与不可为空
我是 Blazor 和 EF Core 的新手,我正在学习 C# 类与 EF Core 创建的数据库表之间的映射。 在 C# 中定义类时,如果我定义
当自动生成的 Blazor Web 应用程序在调试模式下运行时,Visual Studio 2022 预览版本 17.12.0 挂起
toady(2024 年 8 月 20 日)我通过运行 Visual Studio 安装程序并选择两者进行更新,分别更新了我的 Visual Studio 2022 稳定版和预览版 17.11.0 和 17.12.0 Preview 1...
我一直在使用 Blazor 构建一个 Web 应用程序,该网站上有一个更改历史记录/审核区域,记录了所做的每个更改,其中显示了基本信息、用户名、日期、旧值...