【问题标题】:Is is possible to make helpers private in WebMatrix?是否可以在 WebMatrix 中将助手设为私有?
【发布时间】:2011-02-03 15:43:15
【问题描述】:

我在 WebMatrix 中创建了自己的数据网格助手。分页和排序链接也是助手,但我真的不想将这些助手公开暴露给应用程序的其余部分。

例如:

@helper Pager(IEnumerable<dynamic> gridData,
    int totalRows, int currentPage, int rowsPerPage)
{
    // Helper code is here.
}

有什么方法可以将助手设为私有?无论如何,这会是一个坏习惯吗?我知道有私有函数,但从句法的角度来看,助手很方便。

【问题讨论】:

  • 我认为助手是为了避免代码重复而添加的方法。将这些设为私有会破坏该目的,因为您必须将助手复制并粘贴到您想要重用它的每个地方。您是否有任何理由要阻止代码被重用?
  • druttka - 我正在使用页面和链接助手进行代码重用 - 就在网格助手本身内。我习惯了私有方法常见的 OOP 和封装。我可以很容易地创建一些实际的私有方法,但我喜欢 Razor 中的辅助语法。没什么大不了的(这是一个简单的项目,因此使用了 WebMatrix)。只是好奇这是否可能。

标签: helper access-modifiers webmatrix


【解决方案1】:

使用@helper 语法意味着您的辅助方法将自动编译为public static 方法。所以你的问题的答案是否定的。

【讨论】:

    【解决方案2】:

    一种方法是创建一个库并在您的 web.config 或 .cshtml 文件中引用它。 助手基本上输出您需要/想要的 html,本质上 htmlhelpers 返回一个 html 字符串。您必须将所有代码移到库中,并将其与主应用程序分开。

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 2022-11-10
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      相关资源
      最近更新 更多