我在使用标签助手将布尔视图模型属性绑定到 .NET Core 中的单选按钮时遇到问题。
<fieldset class="form-group">
<div class="row">
<label asp-for="AffectsUsers" class="col-sm-2 col-form-label text-right">Affects Users?</label>
<div class="col-sm-10">
<div class="mt-2">
<div class="form-check form-check-inline">
<input class="form-check-input" asp-for="AffectsUsers" type="radio" value="true" />
<label class="form-check-label" asp-for="AffectsUsers">Yes</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" asp-for="AffectsUsers" type="radio" value="false" />
<label class="form-check-label" asp-for="AffectsUsers">No</label>
</div>
</div>
<span asp-validation-for="AffectsUsers" class="text-danger"></span>
</div>
</div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
我有一个基于 ID 绑定到单选按钮的 jQuery 更改事件。
$('#AffectsUsers').change(function() {
if (this.value === 'true') { ... } else { ... }
});
Run Code Online (Sandbox Code Playgroud)
仅针对第一个单选按钮调用该事件。我认为这是因为我正在使用单选按钮标签助手,它使用相同的 ID 创建多个输入。
如何将视图模型中的布尔值绑定到单选按钮,以便更改事件能够根据控件的值做出适当的响应?
我正在尝试使用 .NET Core 3.0 中的新端点使用 WCF 服务。我添加了服务引用并成功调用。
将我的 WCF 端点地址更改为我最初使用的地址后,我收到了“无法识别的消息版本”。错误。我怎样才能克服这个错误?
我已经尝试过使用自定义绑定、更改传输类型和 SOAP 版本。我已将问题缩小到端点地址。
包含以下代码段的注释行后,我收到错误消息。当我将地址注释掉时,服务会返回有效响应。我已经验证该服务使用基本的 HTTP 绑定,不需要凭据。
using var client = new AccountServiceClient();
// client.Endpoint.Address = new EndpointAddress("<url redacted>");
var response = client.getAccountAsync(new AccountRequest ...
Run Code Online (Sandbox Code Playgroud)
我在代码中使用的 URL 与我最初为测试目的配置的 URL 相同;但是,此 URL 会因环境而异。预期结果应填充响应变量。相反,我收到以下错误消息:
System.AggregateException : One or more errors occurred. (Unrecognized message version.)
---- System.ServiceModel.CommunicationException : Unrecognized message version.
Run Code Online (Sandbox Code Playgroud) 我正在使用 MiniProfiler 尝试找出为什么我的 ASP.NET Core 5.0 Web 应用程序的性能比预期慢。
我已将问题范围缩小到控制器中的 MediatR 调用(执行时间为 1201 毫秒),但这很奇怪,因为当我深入研究 MediatR 执行的处理程序时,处理程序的整个主体运行时间不到 50 毫秒(包括Entity Framework Core 数据库对 MS SQL Server 的调用)。
这是我的相关代码:
控制器
public async Task<IActionResult> Index(GetAnnouncementsRequest query)
{
using (MiniProfiler.Current.Step("[AnnouncementsController] Index"))
{
IEnumerable<GetAnnouncementsDto> model;
using (MiniProfiler.Current.Step("[AnnouncementsController] Index: MediatR"))
{
model = await _mediator.Send(query)
.ConfigureAwait(false);
}
return View(model);
}
}
Run Code Online (Sandbox Code Playgroud)
处理程序
public async Task<IEnumerable<GetAnnouncementsDto>> Handle(GetAnnouncementsRequest request, CancellationToken cancellationToken)
{
using (MiniProfiler.Current.Step("[GetAnnouncementsRequest] Handle"))
{
List<Announcement> announcements;
IReadOnlyCollection<GetAnnouncementsDto> announcementsDto;
using (MiniProfiler.Current.Step("[GetAnnouncementsRequest] Handle: GetAllActiveAsync"))
{
announcements = await _announcementRepository.GetAllActiveAsync()
.ConfigureAwait(false); …Run Code Online (Sandbox Code Playgroud)