C# 如何单独显示每个可折叠文件?(MVC)

C# 如何单独显示每个可折叠文件?(MVC),c#,html,asp.net,asp.net-mvc,twitter-bootstrap,C#,Html,Asp.net,Asp.net Mvc,Twitter Bootstrap,文本文件有一个行项,例如 橙子,0 “userData”是一个数组,负责读取此文本文件中的行,然后使用“delimiterChar”拆分这些行以分隔“oranges”和“0”。0被视为oranges的主键,因此充当行项目唯一标识符 “Oranges”随后显示为引导可折叠文件的标题。现在很明显,用户可以根据需要向文本文件添加任意多的行项目,从而产生许多可折叠的,所有这些都应该能够独立于其他项目打开。然而,就目前情况而言,如果我只打开一个可折叠文件,那么所有可折叠文件也将打开 如下图所示 单击“橙

文本文件有一个行项,例如

橙子,0

“userData”是一个数组,负责读取此文本文件中的行,然后使用“delimiterChar”拆分这些行以分隔“oranges”和“0”。0被视为oranges的主键,因此充当行项目唯一标识符

“Oranges”随后显示为引导可折叠文件的标题。现在很明显,用户可以根据需要向文本文件添加任意多的行项目,从而产生许多可折叠的,所有这些都应该能够独立于其他项目打开。然而,就目前情况而言,如果我只打开一个可折叠文件,那么所有可折叠文件也将打开

如下图所示

单击“橙子”(或任何其他标题)后,所有三个可折叠的将同时打开

以下是可折叠文件的代码:

@Model.result
        @if (Model.result == "")
        {
            foreach (String dataLine in Model.userData)
            {



                <p>
                    <a data-toggle="collapse" href="#dataLine" role="button" aria-expanded="false" aria-controls="collapseExample">
                        @dataLine.Split(Model.delimiterChar)[0]
                    </a>                    
                </p>

                <div class="collapse" id="dataLine">
                    <div class="card card-body w-25 p-3 collapsible" id="@dataLine.Split(Model.delimiterChar)[1]">
                        <!-- Collapsible content -->
                    </div>
                </div>

            }

        }
@Model.result
@如果(Model.result==“”)
{
foreach(Model.userData中的字符串数据行)
{

} }

如果您对如何解决此问题有任何建议,我们将不胜感激,谢谢

在下面的代码中,我们添加了一个计数器变量
count
,将其附加到可折叠触发器的可折叠ID和href目标中

@Model.result
   @if (Model.result == "")
   {
      int count = 0;

      foreach (String dataLine in Model.userData)
      {
         string countString = count.ToString();
         string target = "dataLine"+countString;
         string trigger = "#"+target;

         <p>
            <a data-toggle="collapse" href="@trigger" role="button" aria-expanded="false" aria-controls="collapseExample">
               @dataLine.Split(Model.delimiterChar)[0]
            </a>                    
         </p>

         <div class="collapse" id="@target">
            <div class="card card-body w-25 p-3 collapsible" id="@dataLine.Split(Model.delimiterChar)[1]">
               <!-- Collapsible content -->
            </div>
         </div>

         count++;
      }
   }
@Model.result
@如果(Model.result==“”)
{
整数计数=0;
foreach(Model.userData中的字符串数据行)
{
string countString=count.ToString();
string target=“dataLine”+countString;
字符串触发器=“#”+目标;

计数++; } }
如果你有多个橙子,你会添加一张它看起来像什么的图片吗?你的意思是如果“香蕉”和“葡萄”被“橙子”取代了吗?如果是这样的话,同样的情况也会发生。或者
@for(inti=0;i
然后
dataLine@i
我不能完全确定我是否遗漏了什么,但是通过尝试附加“@”符号,什么都没有发生?它只是一种“观赏”dataLine@count“作为单一标识符?@SeventhWarhawk我更新了答案。不知道为什么它不能正确解析,在更新的答案中,我们将完整的目标/触发器ID分配给了另一个变量。不幸的是,这仍然同时显示所有可折叠的,我已经尝试了您建议的代码,直接在我的程序中。我不确定为什么会出现这种情况,因为它起作用了!先生,非常感谢您留下来帮助我。真的无法表达我的感激之情。干杯