asp.net-mvc - MVC4 : HtmlHelper - pro & con

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

什么情况下一定要使用 HtmlHelper?

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

鼠标悬停时,例如,

  • 系统会显示一颗星号,单击该星号即可将该 channel 设为收藏 channel 并更改图标。
  • “管理工具栏”从图标底部向上滑动,允许编辑、删除或查看该 channel 的详细信息
    • 如果 channel 是录制 channel ,则会显示一个附加图标

最初,我仅在 View 中定义了标记。现在我创建了一个 htmlhelper 方法,一次传递一个“ channel ”项并返回几乎相同的标记。

我不确定是否有客观的优点和缺点?我读过,htmlhelpers 应该只用于次要操作。我想这仍然是一个小手术。

我认为唯一的优点是我可能还需要在另一个 View 上使用 channel 图 block ,并且使用 htmlhelper,我不会有(太多)冗余代码。

最佳答案

查看显示/编辑器模板(例如 hereherehere )。它们是插入 @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/

相关文章:

c# - 如何在来自 View 的 View 值中显示标签

c# - 特定 ASP.NET MVC4 URL 的自定义配置设置

javascript - 限制div中元素的数量

jquery - MVC中的Ajax.BeginForm上传文件

jquery - 通过 jquery 更改 DisplayFor Text/Value

c# - Url Referrer 在 WebApi 2 MVC 项目中不可用

c# - 在整个应用程序中使用用户 ID 的方法是什么?

c# - 传递字典以在 HTML/Razor 中完全查看和使用它

c# - MVC4 捆绑误导背景图像 url

asp.net - Html.RouteLink 到 Web API 路由 - 可能吗?