You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor拖拽组件传入空TestSuiteModel列表报错问题求助

问题分析与解决

先看你代码里的核心问题:

  1. 类型不匹配引发歧义错误:你把MySecondList定义成List<TestSuiteModel>,但初始化时却添加new Value()对象——TestSuiteModel和Value是完全不同的类型,编译器无法识别你的意图,所以报错。
  2. Dropzone数据源绑定逻辑错误:拖拽组件的Items需要接收列表类型(对应原先的List<TodoItem>),现在你的TestSuiteModel里的value字段才是List<Value>,这才是和原逻辑匹配的数据源类型。

正确实现方式

方式一:沿用TestSuiteModel结构

如果要保持和第一个组件一致的结构,第二个组件的数据源应该这么定义:

// 初始化空的TestSuiteModel,其value属性为空白List<Value>
TestSuiteModel MyThirdList = new TestSuiteModel()
{
    value = new List<Value>()
};

对应的Dropzone组件绑定代码:

<div class="col">
  <p>In Progress</p>
  <Dropzone Items="MyThirdList.value" Class="h-100">
      <ChildContent>
          <div class="card" style="border-left: 3px solid orange">
              <div class="card-body">
                  <h6>@context.id</h6>
              </div>
          </div>
      </ChildContent>
  </Dropzone>
</div>

方式二:直接使用List作为数据源

如果不需要TestSuiteModel的count属性,也可以直接把数据源定义成List<Value>,和原List<TodoItem>逻辑完全对齐:

// 空白List<Value>,和原先空的MyThirdList逻辑一致
public List<Value> MyThirdList = new List<Value>();

对应的Dropzone绑定代码:

<div class="col">
  <p>In Progress</p>
  <Dropzone Items="MyThirdList" Class="h-100">
      <ChildContent>
          <div class="card" style="border-left: 3px solid orange">
              <div class="card-body">
                  <h6>@context.id</h6>
              </div>
          </div>
      </ChildContent>
  </Dropzone>
</div>

额外注意事项

  • 确保绑定的Items是可修改的列表,如果接口返回的MyFirstList.value是只读集合,建议先转成新的List<Value>,避免拖拽时无法修改列表。
  • 若要让列表变化时自动更新UI,可考虑用ObservableCollection<Value>替代普通List<Value>(组件支持双向绑定的前提下)。

内容的提问来源于stack exchange,提问作者elektra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:56:52