MVC4:HtmlHelper - pro& CON

时间:2013-07-17 07:04:50

标签: asp.net-mvc asp.net-mvc-4

什么时候确定使用HtmlHelper?

我正在建立一个用于观看电视的小型MVC网站,每个频道都显示为某种增强的100px * 100px磁贴:

鼠标悬停,例如,

  • 显示一个星标,单击此星标会使该频道成为最喜欢的频道并更改图标。
  • "管理工具栏"从图标底部向上滑动,允许编辑,删除或查看该频道的详细信息
    • 如果频道是录制的频道,则会显示其他图标

最初,我只在视图中定义了标记。现在我创建了一个htmlhelper方法,它一次传递一个" Channel" -item并返回几乎相同的标记。

我不确定是否有客观的专业人士以及任何方式?我已经知道htmlhelpers只能用于未成年人操作。我想这仍然是一个小手术。

我认为唯一的专业人员是我可能需要在另一个视图上使用频道切片,并且使用htmlhelper,我不会有(多)冗余代码。

2 个答案:

答案 0 :(得分:2)

查看显示/编辑器模板(例如hereherehere)。它们是插入@Html.DisplayFor@Html.EditorFor

的部分视图

我认为:

  • 如果生成的HTML相当简单并且涉及很多服务器端逻辑(例如基于服务器端模型的验证),则Html Helper很好。
  • 如果您想在另一个页面中使用一个页面的一部分,则部分视图非常适合。但是如果你想在很多地方重复使用它们,它们有点笨拙。
  • 这是显示和编辑器模板最适合的地方。

还有一个注意事项:显示和编辑器模板基于模型类型:您可以为特定类型定义自定义编辑器和/或显示。如果您想再次为各种模型使用相同的HTML模式,这可能不是一个完美的选择。在这种情况下,您可能想要使用Html Helpers - 它们允许轻松传递参数。部分视图不带参数。您必须将它们作为模型或ViewBag移交。

答案 1 :(得分:0)

你是对的当你需要输出相对少量的html时,会使用HtmlHelpers。原因是html是通过在c#代码中构建字符串产生的,随着逻辑在帮助程序内的增长,这可能是一个问题。 我建议使用部分视图为你的案例生成html,因为它可以重复使用(使用Html.RenderPartial)并且它很容易修改,因为它是一个带有html intellisense的剃刀视图