将常见的剃刀助手移至另一个文件

2024-04-14

我有一个 MVC4 Web 应用程序,目前有一些@helper是我在多个页面上使用的,在 cshtml 中定义。问题是,我必须在使用它们的每个页面上定义它们。是否有可能创建一个.cshtml包含我所有的文件@helper并将该页面包含到我的视图中?

即,这用于 cms 区域中的每个索引视图。

@helper DisplayPager(Int32 CurrentPage, Int32 MaxPages) {
    String IsActive = "";
    <div class="pagination pagination-centered">
        <ul>
            <li><a href="@Url.Action("Index", new { id = CurrentPage - 1 > 0 ? CurrentPage - 1 : 1 })">Prev</a></li>
            @for (int i = 0; i < MaxPages; i++)
            {
                IsActive = ((i + 1) == CurrentPage) ? "active" : "";

                <li class="@(IsActive)"><a href="@Url.Action("Index", new { id = i + 1 })">@(i + 1)</a></li>       
            }
            <li><a href="@Url.Action("Index", new { id = CurrentPage + 1 < MaxPages ? CurrentPage + 1 : MaxPages })">Next</a></li>
        </ul>
    </div>
}

相同的定义、相同的代码、相同的一切,但它现在在代码中至少出现了 15 次。


这是实现该目标的说明

此过程向您展示如何创建用于创建注释的帮助程序,如刚才所述。这是一个简单的示例,但自定义帮助程序可以包含您需要的任何标记和 ASP.NET 代码。

  1. 在网站的根文件夹中,创建一个名为 App_Code 的文件夹。这是 ASP.NET 中的保留文件夹名称,您可以在其中放置帮助程序等组件的代码。

  2. 在 App_Code 文件夹中创建一个新的 .cshtml 文件并将其命名为 MyHelpers.cshtml。

  3. 将现有内容替换为以下内容:

    @helper MakeNote(string content) 
    {
      <div class="note" 
           style="border: 1px solid black; width: 90%; padding: 5px; margin-left: 15px;">
        <p>
          <strong>Note</strong>&nbsp;&nbsp; @content
        </p>
      </div>
    }
    

    该代码使用 @helper 语法来声明一个名为 MakeNote 的新助手。这个特殊的帮助器允许您传递一个名为 content 的参数,该参数可以包含文本和标记的组合。帮助器使用 @content 变量将字符串插入到注释正文中。

    请注意,该文件名为 MyHelpers.cshtml,但帮助程序名为 MakeNote。您可以将多个自定义助手放入一个文件中。

  4. 保存并关闭文件。

从这里复制过来的article http://www.asp.net/web-pages/tutorials/working-with-pages/creating-and-using-a-helper-in-an-aspnet-web-pages-site

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将常见的剃刀助手移至另一个文件 的相关文章

  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • C++ 中的软(不是:弱)引用 - 这可能吗?有实施吗?

    在 C 中我正在使用boost shared ptr and boost weak ptr自动删除不再需要的对象 我知道这些与引用计数一起工作 在 Java 中 内存由垃圾收集器管理 它将内置对象引用视为strong WeakReferen
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • 如何检测 C# 中该字典键是否存在?

    我正在使用 Exchange Web 服务托管 API 和联系人数据 我有以下代码 即功能性的 但并不理想 foreach Contact c in contactList string openItemUrl https service
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS

随机推荐

  • Git推送:对象为12311134字节,大于此存储库中对象的1048576字节限制

    当尝试将本地环境中所做的一些提交推送到 Azure DevOps Repos origin 时 出现错误 该对象为 12311134 字节 大于此存储库中对象的 1048576 字节限制 我正在通过运行命令 git push origin
  • 如何在桶聚合中进行过滤器聚合?

    我有以下要求 我有一些如下所示的记录 作为示例 agreementid 1 lastdispositioncode PTP feedbackdate 30 11 2020 agreementid 1 lastdispositioncode
  • 找不到任何 X11 字体错误

    我开始进入 R 开发 并且正在遵循一个教程 该教程在某个时刻打开 X11 来显示图形 但是当该窗口打开时 我收到以下错误 轴错误 侧面 侧面 at at 标签 标签 可以 找不到任何 X11 字体 检查字体路径是否正确 在 另外 警告信息
  • WebDriverException:消息:通过 Selenium Chromedriver python 设置 UserAgent 时,“chromedriver”可执行文件需要位于 PATH 中

    我是网络抓取的新手 我正在尝试使用以下行修改我的用户代理 from selenium import webdriver chrome path r C Users Desktop chromedriver win32 chromedrive
  • ECMAScript5 对象和数组的深拷贝

    我希望找到一个示例代码来对 ECMAScript5 中的对象进行深度复制 复制应该可以克隆 嵌套对象 嵌套数组 数组中的嵌套对象 单独克隆每个数组项 注意 jQuery extend 似乎不处理情况 3 另外 我希望用干净的 ECMAScr
  • 将击键从 C# 应用程序发送到 Java 应用程序 - 奇怪的行为?

    我正在尝试将击键从 C 程序发送到 Java 应用程序 发送密钥的代码是 private void SendKeysToWindow string WindowName string KeysToSend IntPtr hWnd FindW
  • 使用 z-index 将 div 置于另一个 div 上方

    我想要div1高于div2 我尝试与z index但它不起作用 我试过这段代码 div width 100px height 100px div1 background red z index 1 div2 background blue
  • 以编程方式将文件上传到 Google 文档

    我的电子书文件夹中有很多大约 50GB 的 pdf 文件 现在我想将它们上传到 Google 文档中 例如 Linux 的 Rsync 是否可以使用 php 或 python 脚本将电子书文件夹和子文件夹中的所有 pdf 文件上传到 Goo
  • 更改<选择多个>中所选选项的颜色[重复]

    这个问题在这里已经有答案了 我遇到这个问题 我需要在单击 选择时更改一个 多个选项元素的颜色 单击时默认颜色为蓝色 我相信我们现在应该有一个解决方案 因为我尝试搜索解决方案但无济于事 希望在 CSS 或 vanilla JS 中做到这一点
  • 在 Office 加载项清单中指定 ~remoteAppUrl 的值

    我正在使用 Outlook 编写一个加载项新框架 http dev office com docs add ins overview office add ins 项目模板中的清单使用 remoteAppUrl来表示网页文件的位置 它在开发
  • 在ggplot2中手动指定刻度标签

    在 ggplot2 中 我有一个图表 其 y 轴位于 log10 x 1 上 我还没有找到直接指定 ggplot2 使用 log10 x 1 刻度的方法 所以我想直接修改 y 轴刻度标签 而不是 0 0 5 1 1 5 和 2 这些刻度将显
  • DRF:如何在保存到数据库之前更改模型字段的值

    如果我需要在保存到数据库之前更改一些字段值 因为我认为模型方法clear 适合 但尽管我竭尽全力 还是无法给他打电话 例如字段email我需要设置为小写和领域nda我需要设置为null 模型 py class Vendors models
  • jQuery colorbox:如何更改颜色框的位置

    默认情况下 颜色框在屏幕上垂直和水平居中显示 有没有办法改变它 例如从顶部垂直调整为 10 水平居中 这将覆盖顶部位置 您可以对 left 等执行相同的操作 colorbox top 100px important 从顶部开始 10 会更棘
  • Windows Azure 网站 python

    经过大量的艰苦工作 我最终得到了一个在 Windows Azure 上运行的 hello world Flask 应用程序 该应用程序是本地构建的并且运行良好 但将其部署到 Azure 是一场噩梦 所以我这里有两个问题 我似乎根本无法获得堆
  • SQL Server 中的行偏移

    SQL Server 有什么方法可以获取从给定偏移量开始的结果吗 例如 在另一种类型的 SQL 数据库中 可以执行以下操作 SELECT FROM MyTable OFFSET 50 LIMIT 25 得到结果51 75 SQL Serve
  • IVY 部分的循环依赖

    在一个项目中 我想将我的库切换到ivy部分编译模式 角度12 但现在遇到了一些令人讨厌的循环依赖错误 Error 从例子 Compiling with Angular sources in Ivy partial compilation m
  • 为什么字符串不等于存储的内容?

    这是一个简单而奇怪的问题 if tableViewNum One if drinkArray objectAtIndex 0 currentDate updatedArray addObject drinkArray NSLog MADE
  • 为什么我的 ViewController 重新打开后不显示另一个 SKScene?

    所以现在我正在编写一个游戏 但遇到了一个我没有真正找到解决方案的问题 我会尽力为你描述它 所以 为了能够更好地解释我的问题 我为你们创建了一个示意图 现在问题是 我有两个视图控制器 一个称为MenuVc 另一个称为GameVC In Gam
  • ant命令不生成apk文件

    我正在使用 Ant 构建我的应用程序 我的应用程序使用库项目 所以首先我在命令行中运行以下命令以在我的项目中生成 build xml 安卓更新 项目 target 5 p 我的项目路径 l 我的库项目路径 我的应用程序的构建目标是 4 0
  • 将常见的剃刀助手移至另一个文件

    我有一个 MVC4 Web 应用程序 目前有一些 helper是我在多个页面上使用的 在 cshtml 中定义 问题是 我必须在使用它们的每个页面上定义它们 是否有可能创建一个 cshtml包含我所有的文件 helper并将该页面包含到我的