对自定义 MVC html 控件使用分部视图



我在整个Web应用程序中有一堆按钮样式的链接:

<a href="@Url.Action("Index", "Home")" class="btn btn-default btn-lg btn-right">
    <span class="glyphicon glyphicon-home"></span>
    <h3>Store Home</h3>
</a>

有时他们会得到一个额外的标签来指示方向箭头或其他装饰:

<a href="@Url.Action("Payment", "Checkout")" class="btn btn-primary btn-lg btn-right">
    <h3><<</h3>
    <span class="glyphicon glyphicon-credit-card"></span>
    <h3>Back to Payment</h3>
</a>

我的问题是,与其在我的标记中加入这个按钮复制和粘贴的微妙不同风格,不如使用部分视图,以便如何将按钮及其各种口味的知识都集中在一个地方?编辑:为了清楚起见,我的意思是除了按钮标记之外没有其他任何东西的部分视图,以及潜在的"按钮视图模型"对象,其中包含要操作的视图的各种设置。

似乎部分视图的目的是促进可重用性和可维护性,但我不确定我是否走得太远了,或者是否存在某种我不知道的性能约束,这使得这是一个坏主意。

我宁愿使用自定义 HTML 帮助程序,但使用部分来隔离常见的功能(例如此功能)似乎也很合适。

使用自定义帮助程序,代码可能如下所示:

@Html.MySuperButton("Store Home", "Index", "Home")

或:

@Html.MySuperButton("Back to Payment", "Payment", "Checkout", "<")

在所有情况下,如果您有重复的通用功能,最好将其封装到可重用的帮助程序中。对于 HTML 的如此小部分,自定义帮助程序似乎是最合适的解决方案。

最新更新