我在ASP.NET MVC应用程序中有这个视图:
<%
var path = Path.Combine(HttpRuntime.AppDomainAppPath, "uploads");
foreach (var file in Directory.GetFiles(path).OrderBy(f => new FileInfo(f).Length))
{
var item = new FileInfo(file);
%>
<tr>
<td></td>
<td>
<%=Html.Encode(Path.GetFileName(item.Name))%>
</td>
<td>
<%=Html.Encode(Functions.FormatBytes(item.Length))%>
</td>
<td>
<%=Html.FileLink(item.Name)%>
</td>
</tr>
<% } %>
是否可以在循环中访问我的变量f
,或者是否有其他方法可以执行此操作,因此我不必标注FileInfo(file)
的两个实例?
谢谢!
答案 0 :(得分:6)
var fileInfos = new DirectoryInfo(path).GetFiles().OrderBy(f => f.Length);
foreach (var fileInfo in fileInfos)
{
...
}
答案 1 :(得分:2)
你的观点在这里超越了它的责任。您应该创建一个类,该类映射到要在视图中显示的数据,然后在控制器中,检索数据并填充IEnumerable&lt;&gt;您的类在ViewModel中返回,然后您的视图可以简单地循环。