首页 > 解决方案 > 为什么我的 Blazor 输入字段在我有 for 循环确保不超出范围时显示索引超出范围?

问题描述

我在我的一个剃须刀页面上遇到了索引超出范围的问题,即使它处于 for 循环中以确保它没有超出范围。这是一个用于上传用户创建的迷你版的页面,该迷你版在哪些部分使用了哪些油漆(例如,防弹衣被涂成“蓝色”等......)。这是一个稍微复杂的模型,所以如果我需要添加更多信息,我会添加,但我试图使代码尽可能小,以便于查看。在此先感谢您的帮助!

@foreach (var elem in newMini.Elements)
                {
                    <div class="@elem.Name">
                        <InputText @bind-Value="elem.Name" placeholder="Element name" />
                        @for (int i = 0; i < elem.PaintsUsed.Count; i++)
                        {
                        <div class="@elem.PaintsUsed[i]">
                            index: @i of count: @elem.PaintsUsed.Count 
                            <input type="text"
                                   list="paint-search"
                                   placeholder="Search from @allPaints.Count() paints!"
                                   @bind="@elem.PaintsUsed[i]" />
                            <datalist id="paint-search">
                                @foreach (var paint in allPaints)
                                {
                                    <option>@paint.PaintName</option>
                                }
                            </datalist>
                        </div>
                        }
                        @if (!String.IsNullOrWhiteSpace(elem.Name))
                        {
                            <button type="button" @onclick="() => AddPaintToElement(elem)">
                                Add Paint To Element
                            </button>
                        }
                    </div>
                }

编辑:如果您需要更多背景知识,这是文件和我的仓库的链接。https://github.com/Zami77/wargamer_showcase/blob/main/Pages/MiniUpload.razor

标签: c#asp.net-corerazorblazorblazor-server-side

解决方案


推荐阅读