Foreach循环不适用于模态

时间:2016-04-21 03:53:39

标签: asp.net asp.net-mvc foreach embed bootstrap-modal

我有一个剃刀视图,显示与每个循环使用的特定用户相关的所有pdf文件。我使用<embed>来显示pdf文件。

@foreach (FileInfo res in Model)
{
  <embed src="~/PDF/@res.Name" width="850" height="850" type="application/pdf" />
}

使用上面的代码,它会循环并正确显示pdf。但是,我希望pdf显示在模态窗口中。所以我在下面有这个代码,它循环并显示所有不同的文件名,但是当我查看每个文件名时,所有文件都显示模态窗口中第一个文件的内容。

@foreach (FileInfo res in Model)
{
  <div class="modal fade" id="resultmodal" role="dialog" tabindex="-1">
    <div class="modal-dialog modal-lg">
      <div class="modal-body">
        <embed src="~/PDF/@res.Name" width="850" height="850" type="application/pdf" />
      </div>
    </div>
  </div>

  <div>
    <a href="#resultmodal" data-toggle="modal">View Result</a>
  </div>
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果您通过在href视图结果和模式div的#resultmodal"中将"#resultmodal@res.Name"更改为id="resultmodal@res.Name"来唯一地处理每个事件,该怎么办?

@foreach (FileInfo res in Model)
{
    <div class="modal fade" id="resultmodal@res.Name" role="dialog" tabindex="-1">
        <div class="modal-dialog modal-lg">
            <div class="modal-body">
                <embed src="~/PDF/@res.Name" width="850" height="850" type="application/pdf" />
            </div>
        </div>
    </div>
    <div>
        <a href="#resultmodal@res.Name" data-toggle="modal">View Result</a>
    </div>
}

这样每个视图结果链接都处理一个不同的div。

答案 1 :(得分:1)

正在显示第一个文件,因为您的每个div的ID都是resultmodal,并且您从resultmodal开始定位a href。所以它显示了页面中找到的第一个div。您需要为每个div提供一个唯一ID,并且还要将该div定位到各自的a href&#39;。

<div class="modal fade" id=@("#resultmodal" +res.Name) role="dialog" tabindex="-1">
  <div class="modal-dialog modal-lg">
     <div class="modal-body">
       <embed src="~/PDF/@res.Name" width="850" height="850" type="application/pdf" />
     </div>
  </div>
</div>

<div>
  <a href=@("#resultmodal" +res.Name) data-toggle="modal">View Result</a>
</div>