我遇到了一个小问题,我尝试在 Blazor 服务器项目的页面上显示实时数据。阅读了几篇文章后,我认为这应该可以使用 INotifyPropertyChanged 来实现。不幸的是我对此很菜鸟,这是我尝试过的:
我的模型价格与 INotifyPropertyChanged (使用 Rider 生成):
public class Price : INotifyPropertyChanged
{
private double _askPrice;
private double _bidPrice;
private double _spread;
public Price(double askPrice, double bidPrice)
{
_askPrice = askPrice;
_bidPrice = bidPrice;
}
public double AskPrice {
get => _askPrice;
set
{
_askPrice = value;
OnPropertyChanged("AskPrice");
OnPropertyChanged("Spread");
}
}
public double BidPrice
{
get => _bidPrice;
set
{
_bidPrice = value;
OnPropertyChanged("BidPrice");
OnPropertyChanged("Spread");
}
}
public double Spread => _askPrice - _bidPrice;
public event PropertyChangedEventHandler …Run Code Online (Sandbox Code Playgroud) 我需要让我的 blazor 服务器端应用程序始终保持活动状态。
我尝试将 iis 8.5 启动模式设置为“alwaysrunning”,并将“idle”设置为 0,但仍然关闭应用程序并捕获停止信号...在 23 点到 29 点之间...
我必须做什么才能让它活下去,我错过了哪个设置?我必须在 web.config 上添加代码吗?
我在 Blazor 服务器应用程序中有一个自定义身份验证系统,具有自定义数据库和一些逻辑。
我希望受益于 razor 中内置的 AuthorizeView 标签。但我不知道如何在没有 AspNetCore.Identity 的情况下使用它。
现在我有一个全局属性 bool IsAuthorized 来检查用户是否登录。最重要的是,我想也许我可以将 IsAuthorized 属性绑定到 AuthorizeView 标签 Authorize 和 NotAuthorized。
我通读了 AuthorizeView 参考,但找不到哪个属性控制它的状态。
是否可以在自定义身份验证逻辑中使用 AuthorizeView,而无需内置“身份”?
我知道如何从 razor 组件访问 appsetting.json,但如何从 blazor 服务器端项目中的任何类访问?
从剃刀组件我只需注入:
@注入IConfiguration_config
并访问我需要的所有内容,例如:_config.GetConnectionString("default")
但如何在任何班级中做同样的事情呢?当我尝试做的时候
I配置_config;
它说当我想要访问数据时 _config 为空或者是一个未分配的局部变量取决于我写入变量的位置。
我正在尝试使用 CentOS 将我的 blazor 应用程序(服务器端)部署到我的 VPS 中。
部署顺利,我可以访问我的网站,但在控制台中我看到以下错误:
blazor.server.js:1 WebSocket connection to 'wss://website.com/_blazor?id=bMDvWwyNa5R5y9KsTVUS6A' failed:
(anonymous) @ blazor.server.js:1
blazor.server.js:1 [2021-05-01T07:33:36.170Z] Error: Failed to start the transport 'WebSockets': Error: There was an error with the transport.
e.log @ blazor.server.js:1
/_blazor?id=l_DDVIXzIu1Ro3zd9stUsA&_=1619854490093:1 Failed to load resource: the server responded with a status of 504 ()
blazor.server.js:1 [2021-05-01T07:35:50.195Z] Error: Connection disconnected with error 'Error'.
Run Code Online (Sandbox Code Playgroud)
我不知道如何对付他们。
据我了解,websocket/signalR 没有打开,这意味着一旦网站加载,连接就会“切断”,这里的问题是 blazor 每分钟都会调用一次,所以我收到一条消息说它确实这样做了attempting to reconnect to the server。但该网站有 5 秒左右无法使用。
为了解决这个问题,我尝试了网上看到的多种解决方案:
在项目中:设置services.AddSignalR()并且app.UseWebSockets()它不起作用。
我也认为它可能是 …
我正在使用 Something.razor 文件和 Something.razor.cs 文件背后的代码。我的分部类继承自 SomethingBase,而 SomethingBase 本身又继承自 ComponentBase。
然而这会产生错误
CS0115 .buildrendertree(rendertreebuilder)':没有找到合适的方法来覆盖部分类 CS0263 的部分声明,不得指定不同的基类。
但是,如果 Something 直接继承自 ComponentBase 则没有问题。
第一个问题请温柔一点。如果需要的话,我会在早上更新代码和更多细节。
我尝试使用 /somepage/{Id} 调用页面,其中 Id 是带有[Parameter]int 属性的页面,并且路由作为字符串调用,它不应该将字符串隐式转换为 int 吗?为什么它根本不起作用?我希望它能识别参数,因为它是......
我应该如何尝试让路由中间件识别参数?即使在 MVC 中也可以正常工作......
页面路由
@page "/EditEmployee/{Id}"
Run Code Online (Sandbox Code Playgroud)
链接
<a href="/EditEmployee/@Employee.EmployeeId" class="btn btn-primary m-1">Edit</a>
Run Code Online (Sandbox Code Playgroud)
页面中的参数
[Parameter]
public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
结果出现异常,页面无法加载
我在 .Net 5 中有一个 Blazor 服务器应用程序,它工作正常。最近,我添加了一个用于通知消息的 SignalR HubConnection,但由于在生产服务器中建立了 SSL 连接,我遇到了异常,如下所示:
Workflow2.Common.DalException: The SSL connection could not be established, see inner exception.
---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure: RemoteCertificateNameMismatch
at System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken message, ExceptionDispatchInfo exception)
at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
[2022-01-26 13:07:30.970][ERR]: InnerException Message
System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure: …Run Code Online (Sandbox Code Playgroud) 我正在开发服务器端 Blazor 应用程序。我的目标是用对象列表动态填充下拉列表,然后在选择该对象时对其执行某些操作。这是我收到的错误:
The call is ambiguous between the following methods or properties: 'RenderTreeBuilder.AddAttribute(int, string, string?)' and 'RenderTreeBuilder.AddAttribute(int, string, MulticastDelegate?)'
Run Code Online (Sandbox Code Playgroud)
错误位于文件“ListDropdownComponent.g.cs”中,我没有对此文件进行任何更改,因此我怀疑 Visual Studio 将我指向了错误的源。
当我注释掉这段代码时,错误消失了,所以我认为这就是错误所在:
<InputSelect @bind-Value="SelectedList" TValue="ListModel" @onchange="AddToList">
<option value="@null">Add to list</option>
@foreach (ListModel list in Lists)
{
<option value="@list">@list.ListName</option>
}
<option value="@(new ListModel{ ListID = -1, ListName="New List" }) ">New List</option>
</InputSelect>
Run Code Online (Sandbox Code Playgroud)
SelectedList 使用 ListModel 类:
public ListModel SelectedList;
Run Code Online (Sandbox Code Playgroud)
更新:我改用类的 int ID 属性,但仍然遇到相同的错误。所以我不知道原因是什么。
更新 2:这就是问题:value="@null"。我会找到一种方法来解决这个问题,但自从 int? 可为空我仍然想知道实际问题是什么。
在做了很长时间的 React 之后,我正在使用 Blazor,而且我真的不明白(据我所知)Blazor 在代码中动态组合 HTML 结果的能力非常有限。举一个简单的例子,我有一个用户个人资料,我想显示一个图标/徽章来演示用户的非活动状态。这样做的“正确”方法是什么?我有这样的东西(在伪代码中,因为我似乎无法让解释器接受我的尝试):
@(UserViewModel.IsInactive == true ? "<i class=\"ps-2 fas fa-seal-exclamation\" style=\"color: yellow\" title=\"Inactive\"></i>" : "")
Run Code Online (Sandbox Code Playgroud)
这只是返回实际的 HTML,但不会渲染它。
我经常看到的另一个类似的情况是有条件地显示一行文本,例如如果地址存在,则显示它,但否则不显示该行:
@(UserViewModel.Address?.Address1 ? UserViewModel.Address.Address1 + "<br/>" : "")
Run Code Online (Sandbox Code Playgroud)
这可行,但似乎有点尴尬——是否可以在代码隐藏的 C# 页面 ( ) 中执行一个MyComponent.blazor.cs仅返回呈现的 HTML 的函数?如果可能的话,我还没有找到正确的返回类型,并且它总是出错。在 React 中,我会编写许多小辅助函数来根据传入的参数或对象返回 HTML——我不知道如何在 Blazor 中做到这一点。
blazor ×7
c# ×5
.net ×1
appsettings ×1
asp.net ×1
asp.net-core ×1
centos7 ×1
iis ×1
keep-alive ×1
nginx ×1
razor ×1
razor-pages ×1
razorengine ×1
signalr-hub ×1
websocket ×1