【发布时间】:2020-07-22 14:24:06
【问题描述】:
我的 .NET MVC 应用程序中有一个视图,它应该返回并显示模型数据,该数据是使用 ExcelDataReader 包从 Excel 文件中读取的。
我的视图包含一个 foreach 循环,它显示模型中的每个值,并在 div 中显示该值。这是我当前的代码:
@foreach (var item in Model.StudentData)
{
<div>@item.FirstName</div>
}
我遇到的问题是,当此循环在我的应用程序中运行时,仅返回模型中的最后一个值并显示在每个 div 中,但仅当我在 Internet Explorer 11 中运行应用程序时。当我运行此应用程序使用 Chrome 或 Edge,循环在每个生成的 div 中正确显示模型值。
例如:
model values how Chrome/Edge returns data how IE11 returns data
------------ ---------------------------- ---------------------
4 4 8
3 3 8
9 9 8
8 8 8
我循环通过 StudentData 模型的方式是否需要更改以使其与 IE11 浏览器兼容?我在循环结束时设置了一个断点,以验证 item.FirstName 的每个值是否正确返回。我确信这与浏览器兼容性有关。任何意见或建议将不胜感激。
【问题讨论】:
-
你在每个浏览器中都
View Source了吗?这些值是您在每个View Source或浏览器本身中看到的吗? -
@mjwills 是的,我检查了每个浏览器中的 View Source,只有在 IE11 中每个生成的 div 都指向最后一个值。我实际上用一个简单的 for 循环对此进行了测试。 @for(int a = 1; a @a并得到相同的结果。对于简单的 for 循环示例,每个生成的 div 将显示 9。
酷 - 这清楚地表明
View Source 是正确的(所以请删除您之前的评论,否则请删除)。但是浏览器渲染不正确。所以这是一个客户端问题 - 而不是服务器端问题。 ASP.NET MVC 工作正常。问题可能是 CSS 或 JS 或其他问题 - 您需要使用 IE11 中的开发工具来找出当 HTML 显示 1 或 2 或其他什么时它显示 9 的原因。
顺便说一句,将来要在浏览器中单击
View Source,然后单击View Source(或View page source或类似的东西)。
标签: c# html asp.net-mvc foreach view