Asp.net mvc 对自定义MVC html控件使用局部视图

Asp.net mvc 对自定义MVC html控件使用局部视图,asp.net-mvc,button,partial-views,reusability,maintainability,Asp.net Mvc,Button,Partial Views,Reusability,Maintainability,我在我的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> 有时,他们会得到一个额外的标签来指示方向箭头或其他装

我在我的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(“返回付款”、“付款”、“结帐”、“我认为使用局部视图保持标记一致且易于更改没有错。您也可以使用自定义Html帮助程序来完成此任务。自定义帮助程序可以在内部仅返回
string partial()
void RenderPartial())
同样如此。如果部分名称发生更改,则只有1或2个帮助程序方法中才有更新,而不是cshtml的GOB。就我个人而言,如果我正在编写自定义HTML帮助程序(在这种情况下我会这么做)我可能不会将其与部分中包含的特定视图引擎语法捆绑在一起。因为它只是标记的一小部分,所以我宁愿在助手中使用
TagBuilder
,根据输入参数生成所需的输出。然后,我将能够在任何类型的MVC应用程序中使用不同的查看引擎,如WebForms、Razor。。。
@Html.MySuperButton("Back to Payment", "Payment", "Checkout", "<")