小编Bri*_*ers的帖子

模型绑定布尔单选按钮如何在 .NET Core 中工作?

我在使用标签助手将布尔视图模型属性绑定到 .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 创建多个输入。

如何将视图模型中的布尔值绑定到单选按钮,以便更改事件能够根据控件的值做出适当的响应?

model-binding asp.net-core-mvc asp.net-core-tag-helpers

5
推荐指数
1
解决办法
8442
查看次数

更改端点地址后如何修复“无法识别的消息版本”

我正在尝试使用 .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)

c# wcf .net-core

1
推荐指数
1
解决办法
3021
查看次数

为什么使用 MediatR 和 async/await 时我的 ASP.NET Core 控制器性能缓慢?

我正在使用 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)

async-await mediatr asp.net-core

0
推荐指数
1
解决办法
1731
查看次数