小编Jun*_*aid的帖子

Blazor 组件参数不应设置在其组件之外

我正在学习 Blazor。我没有基于组件的编程经验。

我有两个组件: aDateRangePicker和 a RadzenCheckBox

<RadzenFieldset Text="Test Component">
    <DateRangePicker @ref="calendar" />
    <div>
        <Radzen.Blazor.RadzenCheckBox TValue="bool" Change="@((args) => txtBoxChange(args))" />
        <RadzenLabel Text="Check" />
    </div>
</RadzenFieldset>
Run Code Online (Sandbox Code Playgroud)

现在,要求很简单。如果选中该复选框,则显示两个日历,如果未选中则显示一个日历。

我写了以下代码:

@code{
    DateRangePicker calendar;

    public void txtBoxChange(bool args) 
    {
        if (args == true) //shows one calendar when checked
            calendar.ShowOnlyOneCalendar = true;
        else //shows two calendars when unchecked
            calendar.ShowOnlyOneCalendar = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

这工作正常。

但我收到警告:

不应在其组件之外设置组件参数“ShowOnlyOneCalendar”。

我已经阅读了一些关于此警告的博客,其中建议建立父子组件关系以进行组件之间的通信。但这些不是父子关系。

我究竟做错了什么?达到这样的要求并且没有这个警告的最佳方法是什么?

asp.net asp.net-core blazor razor-components

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

抛出异常:根据验证程序,远程证书无效

再会,

我在我的一台 PC(Windows 10)上的 Visual Studio 2019 上运行 ASP.NET CORE Blazor 应用程序,它运行良好。我在 VS Code 中的另一台 PC(Windows 7)上打开了同一个项目,并抛出了以下异常。

{System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.\r\n ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.\r\n   at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)\r\n   at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)\r\n   at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)\r\n   at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)\r\n   at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)\r\n   at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)\r\n   at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken …
Run Code Online (Sandbox Code Playgroud)

c# asp.net httpclient asp.net-core blazor

10
推荐指数
2
解决办法
3万
查看次数

多步骤 Blazor 表单尝试通过单击普通按钮提交

我正在根据本文使用向导组件逻辑创建多步骤 Blazor 表单。项目是.NET 5.0 Blazor 客户端(托管)。有一个父Wizard组件,它有WizardStep子组件。

我正在尝试创建一个简单的两步表单。步骤号。1 包含输入日期控件和步骤号。2/最后一步包含一个文本区域控件。

这是

从上图中可以看出,我的表单第 1 步中的“下一步”按钮的类型为“按钮”。单击“下一步”按钮时,当前组件将被替换,并渲染下WizardStep一个/最终组件。WizardStep此决赛WizardStep包含文本区域控件,并且“下一步”按钮被“提交”按钮取代。但是,可以看到最后一步显示了验证错误。这些验证错误是在最后一步中未单击“提交”按钮时出现的。

在此输入图像描述

我已经调试了该应用程序,并且可以看出,在单击步骤 1 中的“下一步”按钮后,该表单会尝试提交,这就是出现验证错误的原因。这种情况不应该发生,因为“下一步”按钮的类型是“按钮”。

为什么会出现这个问题?该表单只能在单击“提交”类型的按钮后提交,并且该按钮出现在向导的最后一步中。

上图中还需要注意的一件事是,表单下一步/最后一步中的“提交”按钮看起来就像被单击一样。为什么?

形式

 <EditForm Model="model" OnValidSubmit="SubmitValidForm">
        <DataAnnotationsValidator />
        <ValidationSummary />
    
        <Wizard Id="TestForm">
            <WizardStep Name="First Step">
                <div class="form-group">
                    <label>Date:</label>
                    <div>
                        <InputDate @bind-Value="@model.Date" class="form-control" />
                    </div>
                    <ValidationMessage For="@(() => model.Date)" />
                </div>
            </WizardStep>
            <WizardStep Name="Final Step">
                <div class="form-group ">
                    <label>Details:</label>
                    <div>
                        <InputTextArea @bind-Value="@model.Entry" …
Run Code Online (Sandbox Code Playgroud)

.net validation blazor blazor-editform blazor-webassembly

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

在C#中将字符串拆分为字符串数组列表

我正在尝试转换以下字符串:

"CN=Test,OU=ABC,OU=Company,DC=CFLA,DC=domain"

转换成这种形式(字符串数组列表):

[
  {"CN" , "Test"},
  {"OU" , "ABC"},
  {"OU" , "Company"},
  {"DC" , "CFLA"},
  {"DC" , "domain"},
]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过将字符串转换成字典列表。我尝试将字符串拆分两次。首先,基于=

以下是我使用的代码:

var result = str.Split(',')
                .Select(line => line.Split('='))
                .ToDictionary(b=> b[0], b=> b[1])
                .ToList();
Run Code Online (Sandbox Code Playgroud)

但这给了我以下异常:'System.ArgumentException:'已经添加了具有相同键的项',正确的做法是将“ OU”和“ DC”作为键重复。

我现在想要的是将该字符串拆分/转换/处理为字符串数组列表(如上所示)。可能吗?

或以其他解决方案指导我。提前致谢。

PS,我有数百个这样的字符串,我只想要每个字符串中第一个“ OU”的值。

c# asp.net arrays split list

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

使用 GetJsonAsync 获取元组列表

我正在开发 Blazor 应用程序。我有一个 API 方法,它返回一个List<Tuple<string,int>>.

Postman 中的 API 响应:

[
    {
        "Item1": "1",
        "Item2": 1
    },
    {
        "Item1": "24",
        "Item2": 2
    }
]
Run Code Online (Sandbox Code Playgroud)

剃刀页面中的 API 调用:

private object dataSource;

protected override async Task OnInitializedAsync() {
    dataSource = await Http.GetJsonAsync<List<Tuple<string,int>>>("/Api/Default/GetProjectsList");
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Deserialization of reference types without parameterless constructor is not supported.
Run Code Online (Sandbox Code Playgroud)

我理解错误。

是否有可以解析的泛型类型GetJsonAsync也可以从 API 方法返回?

或者有没有办法解析这个元组?请帮我。

c# json.net asp.net-core asp.net-core-webapi blazor

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