繁体   English   中英

在可维护的C#MVC5中显示巨大的视图

[英]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 Mueckeadvice 他正确地指出,最好的方法是使用EdiorTemplate和/或自定义HtmlHelper

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM