我有一个使用MVC5和C#和Razor Engine的应用程序。此视图显示一个巨大的表:
<table class="table table-bordered" id="pendingTable">
<thead>
<tr>
<th>Actions</th>
<th>Order Status</th>
<th>Order Details</th>
<th>Order Date</th>
<th>Expected Delivery Date</th>
<th>Ordered By</th>
<th>Employee ID</th>
<th>Employee Status</th>
<th>Employee Name</th>
<th>Employee Type</th>
<th>Scope</th>
<th>Delivery Address</th>
<th>Comment</th>
</tr>
</thead>
<tbody>
<tr>
<td></td> <!-- At least 8 TDs each one with hundreds of lines of code-->
</tr>
</tbody>
</table>
现在,问题在于一切都在一个巨大的文件中。你可以猜到,这个文件是一个更新和维护的噩梦。
所以我熟悉C#region
指令,但我找不到任何类似于视图的simillar。我也知道部分视图,但我对StackOverflow中的讨论有强烈的印象,这些应该仅在我在View中有一段可重用的代码时使用,但实际情况并非如此。
处理这么大的视图的最佳方法是什么?
答案 0 :(得分:1)
使用PartialView
是正确的方法。
即使只在一个地方使用,PartialView
对于实现关注点的分离也很有用,就像你的情况似乎在这里一样,将大文件分隔成更小的文件更容易阅读和维护。
但是,如果您最终在View
中拥有严肃的逻辑,请考虑创建一个处理该逻辑的ViewModel
类。
例如,您可以针对不同的用户类型使用不同的ViewModels
。随后,您可以使用单独的PartialViews
来呈现有关不同用户类型的信息。
现在假设您正在寻找便宜的解决方案。如果您有时间并希望查看更复杂,更有效的解决方案,请在评论中关注Stephen Muecke
advice
。他正确地指出,最好的方法是使用EdiorTemplate
和/或自定义HtmlHelper
。