在多个视图中共享 MVC Razor 功能

2023-12-19

我认为有几个页面共享的功能:

@functions 
{
    public HtmlString ModeImage(ModeEnum mode) 
    {
        switch(mode)
        {
            case AMode: new HtmlString("<img etc..."); break;
            // more etc...
        }
    }
}

有没有一种方法可以将其放在单独的文件中并将其包含在每个页面上,而不必将其复制并粘贴到每个页面中。我知道我可以编写一个 .cs 文件并按页访问它,但该函数确实与视图有关,如果该函数发生更改,我讨厌必须重新编译。


(这是现有答案的更详细版本。)

创建一个名为的文件夹App_Code位于 MVC 项目的根目录中(如果尚不存在)。在这里,创建一个空的剃刀视图并将其命名为您想要的任何名称:

Add @helper和/或static根据需要使用它的方法:

@helper ShowSomething()
{
    <span>Something</span>
}

@functions
{
    public static int CalculateSomething()
    {
        return 1;
    }
}

然后通过首先按名称访问共享视图来从您的视图中使用它们:

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

在多个视图中共享 MVC Razor 功能 的相关文章

  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 配置的托管模块出现 Asp.net MVC 错误

    我有自定义身份验证HttpModule这是相当困难的 但我希望它仅针对托管请求运行 而不是静态请求 Asp net MVC 自动添加 IIS7 Web 服务器的配置部分
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 私有模板函数

    我有一堂课 C h class C private template
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • CheckboxFor 不与嵌套对象绑定

    当模型中嵌套的对象中定义属性时 CheckBoxFor 不受限制 这是一个例子 我有一个SearchOptions模型包含一个List
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • Guid.NewGuid() 与 new Guid()

    有什么区别Guid NewGuid and new Guid 哪一个是首选 new Guid 制作一个 空 全0 guid 00000000 0000 0000 0000 000000000000 不是很有用 Guid NewGuid 制作
  • Angular 4 错误:类型“() => any”中缺少属性“includes”

    我在使用 Angular 4 和 Observable 时遇到错误 Users backend src app app component ts 15 55 类型 gt any 不可分配给类型 State 用户 backend src ap
  • D 中的优雅运算符重载

    有一段时间我对 D 运算符重载的方向感到困惑 但现在我意识到这是一个漂亮的系统 如果它只适用于核心类型 int float 等 考虑以下代码 struct Vector float X Y void opOpAssign string op
  • Python 中的集合和列表有什么区别?

    Python 中集合和列表之间的唯一区别是您可以使用并 相交 差 对称差函数来比较两个集合吗 为什么这些函数不能简单地应用于列表 在什么情况下集合比列表更有用 有很大的不同 集合不能包含重复项 集合是无序的 为了查找集合中的元素 需要使用哈
  • 如何动态启用禁用的 ion-tab?

    这应该是非常简单的 但事实并非如此 在我的 html 中 我有 4 个选项卡 其中一个是默认选项卡 另外 3 个是手动禁用离子选项卡 我的选项卡是标准离子模板 静态 选项卡
  • Android中的SQLite全文搜索unicode

    我正在使用 fts 3 或 4 在 SQLite 中创建一个表 CREATE VIRTUAL TABLE Demo1 USING fts3 content TEXT insert into Demo1 values H Thanh Long
  • Facebook 访问令牌

    我有兴趣使用 facebook graph api 传递电子邮件并获取一个人的名字 类似 https graph facebook com email protected cdn cgi l email protection type us
  • qmake 中的编译器范围值

    qmake 提供了几个内置的平台作用域 允许项目文件根据当前平台执行不同的操作 win32 unix 所有平台规格mkspecs目录还可以用于测试各种平台 编译器组合 例如 linux g win32 g win32 msvc2003 但是
  • 带内存的 C++ 宏

    这最初是作为答案发布的C 宏有内存吗 https stackoverflow com questions 2506167 c macros with memory 9455483 9455483 但不知何故我无法编译它 我可能在这里遗漏了一
  • 在 com.android.build.gradle.internal.api.ApplicationVariantImpl 上找不到属性“outputFile”

    更新到 AS 1 0 RC 1 和插件 0 14 4 后 我在 build gradle 的重命名部分遇到问题 applicationVariants all variant gt def file variant outputFile v
  • Oracle 9i 中字符之间的子字符串

    在以后的版本中我可以使用这个regexp substr SELECT ID regexp substr ID 1 2 DATA 1 regexp substr ID 1 3 DATA 2 FROM employees Table 雇员 ID
  • Python 追加将现有列表替换为 None [重复]

    这个问题在这里已经有答案了 请看一下这个程序 追加函数将列表替换为 None 错误附在下面 class Solution object def isIsomorphic self a b ad bd if len a len b retur
  • integer64 和 Rcpp 兼容性

    在不久的将来 我的包中将需要 64 位整数 我正在研究可行性bit64 https cran r project org web packages bit64 index html包裹 基本上我计划在一个或多个列中data table与in
  • 为什么 Docker Ubuntu 官方镜像在运行/启动时会立即退出?

    据我所知 当主进程退出时 容器也会退出 我的问题是关于其背后的原因 而不是如何让它发挥作用 我当然知道我可以传递参数 it从交互模式开始 Ubuntu 映像将运行 bin bash当它根据镜像 Dockerfile 启动时 bash 进程不
  • 授予特定角色 ALTER 对特定表的访问权限

    我尝试了很多方法都没有成功 但我想做的是 GRANT ALTER ON dbo theTable TO role 如果您还可以在例如之前和之后向我提供一些许可状态 那就太好了 SELECT FROM fn my permissions db
  • 当期望解析器失败时避免抛出期望失败

    当期望解析器失败时 如何避免抛出异常 我有一个规则 function gt x3 lexeme keyword gt gt x3 alnum gt gt symbol gt gt lvalue list gt gt statements g
  • C++ 在编译时创建 BSTR/在编译时将长度插入字符串?

    是否可以使用宏魔法或 TMP 在编译时将长度插入字符串中 例如 const wchar t myString L Hello 我希望缓冲区实际上包含 长度 字符串常量 我正在使用缺少 constexpr 的 MSVC 2010 我认为必须有
  • Oracle OCI、绑定变量和 ID IN (1, 2, 3) 等查询

    简洁版本 我正在寻找以下 Java 技术的 C OCI 改编 其中代码能够将数字数组 数组大小可以变化 绑定到非 PL SQL 中SELECT语句 然后在 a 中使用结果数组WHERE ID IN 风格检查 http rafudb blog
  • 当我在 Java 中迭代非泛型映射时,编译器会抱怨

    当我在 Java 中迭代非泛型映射时遇到奇怪的问题 Map map new HashMap for Map Entry entry map entrySet 但编译器抱怨并说 类型不匹配 无法从元素类型 Object 转换为 Map Ent
  • 在多个视图中共享 MVC Razor 功能

    我认为有几个页面共享的功能 functions public HtmlString ModeImage ModeEnum mode switch mode case AMode new HtmlString img more etc 有没有