[英]Make huge view in C# MVC5 maintanable
我有一个使用C#和Razor引擎的MVC5的应用程序。 此视图显示一个巨大的表:
<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
指令,但找不到与Views类似的任何东西。 我也知道部分视图,但是我从StackOverflow的讨论中获得了深刻的印象,即只有在View中有一段可重用的代码时才应使用这些视图,事实并非如此。
处理如此大的Views的最佳方法是什么?
在这里使用PartialView
是正确的方法。
即使仅在一个地方使用, PartialView
用于实现关注点分离,就像您的情况似乎在这里一样,可以将大文件有效地分成较小的文件,从而更易于阅读和维护。
但是,如果最终在View
中包含严重的逻辑,请考虑在处理该逻辑的地方创建一个ViewModel
类。
例如,您可以为不同的用户类型使用不同的ViewModels
。 随后,您可以使用单独的PartialViews
呈现有关不同用户类型的信息。
现在,这是假设您正在寻找便宜的解决方案。 如果您有时间并且愿意研究更复杂和有效的解决方案,请在评论中遵循Stephen Muecke
的advice
。 他正确地指出,最好的方法是使用EdiorTemplate
和/或自定义HtmlHelper
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.