什么情况下一定要使用 HtmlHelper?
我正在构建一个用于观看电视的小型 MVC 网站,每个 channel 都显示为某种增强的 100px * 100px 磁贴:
鼠标悬停时,例如,
- 系统会显示一颗星号,单击该星号即可将该 channel 设为收藏 channel 并更改图标。
- “管理工具栏”从图标底部向上滑动,允许编辑、删除或查看该 channel 的详细信息
- 如果 channel 是录制 channel ,则会显示一个附加图标
最初,我仅在 View 中定义了标记。现在我创建了一个 htmlhelper 方法,一次传递一个“ channel ”项并返回几乎相同的标记。
我不确定是否有客观的优点和缺点?我读过,htmlhelpers 应该只用于次要操作。我想这仍然是一个小手术。
我认为唯一的优点是我可能还需要在另一个 View 上使用 channel 图 block ,并且使用 htmlhelper,我不会有(太多)冗余代码。
最佳答案
查看显示/编辑器模板(例如 here 、 here 或 here )。它们是插入 @Html.DisplayFor
和 @Html.EditorFor
的部分 View 。
我认为:
- 如果生成的 HTML 相当简单并且涉及很多服务器端逻辑(例如基于服务器端模型的验证),则 Html 助手会很好。
- 如果您想在另一个页面中使用一个页面的一部分,则部分 View 非常适合。但如果您想在很多地方重复使用它们,它们就有点笨重了。
- 这是显示和编辑器模板最适合的地方。
还有一点:显示和编辑器模板基于模型类型:您可以为特定类型定义自定义编辑器和/或显示。如果您想再次对各种模型使用相同的 HTML 模式,这可能不是一个完美的选择。在这种情况下,您可能无论如何都想使用 Html Helpers - 它们允许轻松传递参数。部分 View 不带参数。您必须将它们作为模型或在 ViewBag 中移交。
关于asp.net-mvc - MVC4 : HtmlHelper - pro & con,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17693301/