问题标签 [razor-components]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 带有 Blazor 的 ASP.NET Core:无法确定 cookie 身份验证
我尝试按照本教程(http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/4316/A-Demonstration-of-Simple-Server-side-Blazor-Cookie-Authentication.aspx)进行操作使用 ASP.NET Core 3.0 和 Blazor 框架 v.0.9.0(最新版本)进行 cookie 身份验证的应用程序。对于 IDE,我使用的是 VS 2019 Preview。
作者使用早期版本的 Blazor,但我使用客户端项目而不是 App 遵循教程,因为我认为它们做同样的事情,只是在不同版本的 Blazor 中调用不同。
这是我的结果的回购链接:https ://github.com/SaintMSent/TestBlazorCookieAuth
问题是,它不起作用。如果我转到 localhost:port/login 页面,则会创建 cookie(我检查了 Chrome 开发工具)。如果我去注销页面,它会被删除,所以这部分很好。但该应用程序的其他页面不会加载。如果我从 MainLayout 中删除 Login 组件,一切都加载正常,所以我认为问题在于 Login.cshtml 中的 HttpContext 和 HttpContextAccessor
这是 Login.cshtml 的样子
请帮我弄清楚这里发生了什么。我希望我提供了足够的细节,谢谢。
更新:如果我添加这一行
到 Client 项目中的 Startup.cs,一切都在加载,但 _httpContextAccessor.HttpContext.User 始终为空
asp.net-core - 如何更改 Razor 组件中 HTML 文档头部的标题和其他 html 元素?
我还很陌生Razor Components
,我想更改title
HTML 文档中的和其他数据 -head
取决于用户访问的页面(例如,如果用户访问产品 X 的产品页面,我想更改title
和其他相关的相应的数据head
)。我已经查看了https://github.com/aspnet/Blazor/issues/1311#issuecomment-470760857,但提出的解决方案看起来有点老套。我也知道理论上我可以JavaScript interop
用来实现我的目标,但这似乎也有点混乱。
我试图像这样渲染应用程序:
Uncaught Error: There is no browser renderer with ID 0.
但是由于 components.server.js ( )中的错误,该尝试失败了。我知道我不应该将 JavaScript 标记放入组件中,但我想我会尝试一下。
希望你们能帮助我。谢谢阅读。:)
c# - Razor 组件身份验证
如何将身份验证 SignInAsync 用作来自剃须刀组件的调用。由于上下文处于管道的后期状态,它似乎会引发一些错误。
调用 HttpContext.SignInAsync 时出错:
这是实现 SignIn 的 UserState.cs。
方法被调用并注入如下:
有没有办法登录获得成功响应,然后从 SignIn 方法刷新页面。
我见过一些使用 MVC 控制器的类似实现。不涉及 mvc 就没有办法调用身份验证请求吗?
c# - Razor 组件 + EF Core + 存储库/UoW 模式在没有 SaveChanges() 的情况下更改实体
我目前正在使用 Razor 组件、Entity Framework Core 和一些标准模式(存储库模式、UnitOfWork)构建一个测试应用程序。我的实体中的更改是临时保存的(如果我浏览页面,更改是可见的),而无需调用SaveChanges
我的 UoW 类(错误)。刷新应用程序会删除这些临时文件。更改 - 调用我的工作单元Complete()
功能可永久保存更改的数据(右)。
我无法弄清楚为什么在我的页面中使用/可见这些临时对象更改。工作单元(通常)正在工作,因为只有调用才能SaveChanges()
为我的应用程序运行时保存数据)。当前设置:
- VS 2019 预览
- .NET Core v3.0.0-preview2(因为预览版 3 不能与 Windows 7 和 Razor 组件结合使用,GitHub 上已经说明了问题)
Startup.cs - 在我的服务器启动中添加工作单元
并添加内存数据库上下文
数据库上下文.cs
Repository.cs - 存储库实现
客户存储库.cs
UnitOfWork 实施
我的客户实体
我的测试详情页面
我希望仅当我调用我的 UoW函数customer.Firstname = "123"
时才应保存对对象的更改(使用数据绑定或只是像这样的常规更改) 。Complete
我不希望在我的应用程序中更新任何“缓存/临时/引用”对象。
c# - 在 blazor 中单击按钮时执行异步方法
我创建了一个“Razor Components”项目。我试图在按下按钮时执行异步方法,但还无法弄清楚语法。
这是我的Index.razor:
当我单击按钮时,什么也没有发生。我尝试了各种返回类型(例如Task
)和东西,但不知道如何使它工作。如果我需要提供更多信息,请告诉我。
每个文档/教程仅适用于按钮单击时的非异步 void 调用。
提前致谢。
asp.net-core - Wrapper 和 Native razor 组件之间的区别
我对 blazor-server-side 有一些澄清。blazor 本机组件和包装器组件有什么区别?谁能帮帮我吗?
c# - Razor 运行时重新编译似乎不适用于 *.razor 组件文件
我正在测试新的 Razor 组件(又名服务器端 Blazor),我发现需要停止项目、编辑、重新编译和重新启动服务器,这非常耗时。我想编辑 *.razor 文件,保存,在浏览器上按 F5,然后完成。
我知道 ASP.NET Core 3 发生了重大变化,这在一段时间内阻止了这种情况的发生。但是现在,有一个“修复”:您只需要安装包Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
,然后像这样设置服务:
(是的,没有 Mvc,看这个)
但这似乎不起作用 - 至少,我没有尝试使用 cshtml 文件,因为我只在测试中使用 *.razor。
我也做了:
没有任何运气。
这还不支持还是我做错了什么?
iis - 如何在 IIS 中托管剃须刀组件?
我正在 IIS 中设置剃须刀组件 .net core 3.0 预览。从 VS 2019 通过 IIS Express 站点可以正常工作,但是当我使用 IIS 本身托管它时 - 前端逻辑不起作用(没有点击响应等)如何在 IIS 中托管剃须刀组件?
正如我从 IIS Express 面板中看到的那样 - 当我的应用程序运行时,它托管在 2 个端口上。(可能是客户端和服务器端)根据MS的说法,该应用程序包含在已发布的输出中的 ASP.NET Core 应用程序中。
我的 web.config
看起来我只托管剃须刀组件应用程序的一侧,但应该同时托管两者。
c# - Visual Studio 2019 中没有 Razor 组件模板
我刚刚安装了 Visual Studio 2019(完整版)和 .NET Core 3.0 Preview 3,因此我可以测试 Razor 组件。在Razor 组件入门页面上,它说先决条件是 .NET Core Preview 3 和 VS 2019 Preview。我认为 VS 2019 的完整版(不是预览版)可以,但是没有 Razor 组件的模板(我什至无法在该对话框窗口上选择 .NET Core 3,正如入门页面上所说的那样)。
我仍然可以创建 Razor Components 项目dotnet new razorcomponents
,但我不明白为什么没有模板,我真的必须安装 VS 2019 的预览版才能这样做吗?还是有其他方法可以添加模板?
c# - 可选择运行 blazor 服务器端
据我了解,剃须刀组件完全在服务器端运行,每个方法调用都会向服务器发出信号请求,并且调用的方法在服务器上执行。
然而,在 blazor 中,DLL 和运行时被传送到客户端,方法在浏览器中执行。为了进行服务器调用,我现在需要创建一个 API 并发出标准 API 请求。
我想知道的是,在 blazor 中是否可以正常执行客户端的所有操作,但是对于某些方法要在服务器端执行?所以是 blazor 和 razor 组件之间的一种混合体?那么就不需要 API 了吗?