小编use*_*669的帖子

Blazor 选择下拉列表通过代码设置活动值

我根据列表的内容动态填充下拉列表的值。当选择下拉列表中的某个项目时,会显示删除该项目的选项。当项目被删除时,它首先从列表中删除,然后重建下拉列表,这就是我遇到问题的地方。重建下拉列表时,不会将其返回到默认值,而是将删除的下拉列表下方的值显示为已选择(这种情况会在@onchange 值被触发时发生)。重建时如何使下拉列表恢复到默认值?

这是一些代码,Razor 代码:

<select class="form-control" @onchange="selectedValue">
   <option value="">select one</option>
   @foreach (var mod in values)
   {
        <option value="@mod.Id">@mod.Name</option>
   }
</select>
Run Code Online (Sandbox Code Playgroud)

填充列表的名为 Items 的类:

public class Items
{
    public string Name { get; set; }
    public int Id { get; set; }
    public Items(string name, int id)
    {
        Name = name;
        Id = id;
    }
}
Run Code Online (Sandbox Code Playgroud)

列表本身(在填充之前):

public List<Items> itm = new List<Items>();
Run Code Online (Sandbox Code Playgroud)

名为 onchange 的函数:

public string SelectedValue = "";
public void selectedValue(ChangeEventArgs selectEvent)
{
    SelectedValue = selectEvent.Value.ToString(); …
Run Code Online (Sandbox Code Playgroud)

html-select onchange drop-down-menu blazor blazor-server-side

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

使用 Blazor 将输入文本动态绑定到类/对象属性

我正在尝试使用 Blazor 为类内的属性构建输入字段的动态列表,但无法弄清楚如何将输入框的内容绑定/链接到类的属性。(该类可以有大量的公共道具,不仅是下面例子中的 Name 和 Description,它们并不总是“string”类型)

可以说我有这个类/模型:

public class customer{
        public string Name { get; set; }
        public int Age { get; set; }
        public string Description { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我得到了这个 blazor 组件(updateC.razor):

@inherits CLogic    
@if (nfo != null)
{
      @foreach (var obj in nfo)
      {
             <input type="text" class="form-control"      
             bind=@SCustomer.GetType().GetProperty(obj.ToString())/>
      }
}
Run Code Online (Sandbox Code Playgroud)

最后是 Clogic:

public class Clogic: ComponentBase{
    [Parameter]
    public Customer SCustomer { get; set; } = new Customer();
    [Parameter]
    public PropertyInfo[] nfo { get; …
Run Code Online (Sandbox Code Playgroud)

c# data-binding components razor blazor

4
推荐指数
2
解决办法
2862
查看次数

无法在 VS2019 中选择 .NET 5 作为目标框架,未找到引用程序集

我无法让 Visual Studio 使用.NET 5

以下是我目前的配置:Visual Studio Professional 2019 版本:16.7.6

.NET sdk:dotnet-sdk-5.0.100-preview.7.20366.6-win-x64 (有关更多信息,请参见图片)

在此处输入图片说明

Visual Studio 设置: 我在 VS 中选择了“使用 .NET Core SDK 的预览” (参见图片) 在此处输入图片说明

我的问题的可能来源: 我不小心安装了 .NET 5 的预览版 8,此版本不支持我的 Visual Studio 版本。我删除了这个版本并安装了正确的版本(预览版 7 应该支持 VS 16.7,请参阅:https : //dotnet.microsoft.com/download/dotnet/5.0

这些是我用来重现我的问题的步骤:

在 Visual Studio 中,我执行以下操作来创建 .net 5 项目(blazor 项目):

  1. 开始与 2019 年
  2. 选择“创建一个新项目”
  3. 选择“Blazor 应用程序”
  4. 为项目命名/位置/解决方案名称,然后单击“创建”
  5. 选择.Net 5.0(也可以使用 .net core 3.1)和 Blazor Server App,然后单击“创建”(见图) 在此处输入图片说明

6.项目现已创建,但立即显示错误消息“未找到 .NETFramework 的参考程序集,版本 = v5.0。...”(见图) 在此处输入图片说明

7. 右键单击​​项目 -> …

.net installation visual-studio .net-core .net-5

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

使用 Blazor 设置 chekbox 值而不进行绑定

这可能很容易,但我有点卡住了。我正在从数据库读取数据,需要一个复选框来反映布尔值的当前状态,我可以在代码中获取状态,但无法弄清楚如何添加或删除复选框输入的“checked”属性。我正在使用@onchange来调用函数,但不能使用@Bind。我假设我可以创建一个返回值“”“checked”的函数,然后在标签内部调用它,但这不起作用。

这是我的输入:

<input type="checkbox" class="form-control" value="test" @BoolChecker() @onchange="@function1()" />
Run Code Online (Sandbox Code Playgroud)

这是函数 BoolChecker():

public string BoolChecker()
        {
            if (mybool != null) {
                return (mybool == true) ? "checked" : "");
            }
            else
            {
                return "";
            }
        }
Run Code Online (Sandbox Code Playgroud)

我可以在哪里放置 BoolChecker 函数来完成这项工作?如果不清楚,如果 BoolChecker 函数返回“checked”(并且 mybool 为 true),则假设使复选框显示为选中状态

c# checkbox blazor

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