替换 ASP.NET Core 中的 @helper

2023-12-21

到目前为止,我不认为ViewComponent解决了也没有解决的问题TagHelper。有什么替代品吗?接受参数并返回一个的东西HtmlString?

我没有看到任何有害的东西:

@helper foo(string something) {
     <div>Say @something</div>
}

var emailbody = classfilenameinAppCodefolder.foo("hello"); //store result in a variable for further processes

现在我相信它是 RC 之前的临时删除。https://github.com/aspnet/Razor/issues/281 https://github.com/aspnet/Razor/issues/281 and https://github.com/aspnet/Mvc/issues/1130 https://github.com/aspnet/Mvc/issues/1130出色地!最好是这样。我希望有人正在研究它。没有@helper、建设大型HtmlString或“模板”将是一个严重的痛苦。

注意:部分视图似乎并不能解决问题。我认为它只渲染视图而不将视图返回到变量。

其次,App_Code文件夹发生了什么?


根据以下 Github 问题,@helper 似乎又回来了,并将包含在 asp .net core 3.0.0 预览版 4 中。

https://github.com/aspnet/AspNetCore/issues/5110 https://github.com/aspnet/AspNetCore/issues/5110

UPDATE

从 asp .net core 3 开始,您现在可以在 Razor 代码块中定义本地函数。

@{
    void RenderName(string name)
    {
        <p>Name: <strong>@name</strong></p>
    }

    RenderName("Mahatma Gandhi");
    RenderName("Martin Luther King, Jr.");
}

https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#razor-code-blocks https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#razor-code-blocks

或者,您可以使用 @functions 指令,如下所示:

@{
    RenderName("Mahatma Gandhi");
    RenderName("Martin Luther King, Jr.");
}

@functions {
    private void RenderName(string name)
    {
        <p>Name: <strong>@name</strong></p>
    }
}

https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#functions https://learn.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.1#functions

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

替换 ASP.NET Core 中的 @helper 的相关文章

随机推荐

  • 使用折叠表达式检查可变参数模板参数是否唯一

    给定一个可变参数模板参数包 我想使用以下方法检查赋予它的所有类型是否都是唯一的inline constexpr bool and 折叠表达式 http en cppreference com w cpp language fold 我尝试过
  • 如何使用正则表达式匹配重音字符?

    我正在运行 Ruby on Rails 3 0 10 和 Ruby 1 9 2 我使用以下正则表达式来匹配名称 NAME REGEX w s u validates name presence gt true format gt with
  • C++11 的编译器标志

    我正在尝试编写 CMakeFiles txt 以前从未这样做过 但我不确定 C 11 使用什么编译器标志 我使用 GCC 4 8 2 标志是 std c 0x 但我不知道如何处理其他编译器 我不认为他们都使用该标志 我相信 MinGW TD
  • ActiveRecord Association 选择包含记录的计数

    Example class User has many tickets end 我想创建包含用户计数票证逻辑的关联 并在包含中使用它 用户 has one Ticket count Users includes tickets count
  • 选择 UITableViewCell AccessoryView,与选择行分开

    我有一个UITableview我正在显示一些任务 并且每一行都有一个复选框来标记任务是否完成 我希望在用户点击复选框时切换复选标记 并在用户点击该行时切换到详细视图 后者很简单 只需使用 void tableView UITableView
  • 如何让 Javascript 等待所有图像加载后再继续?

    我对 Javascript 相当陌生 目前正在尝试以各种尺寸和位置显示图像 这意味着我必须先加载图像 然后才能访问宽度和高度等值 现在 这就是我面临问题的地方 我尝试依次加载图像 确保只有在完成一张图像后才会加载另一张图像 const a
  • 使用 QObject 代替容器

    读完有趣的亲子系统后QObject我想知道 Qt 开发人员使用它来代替更传统的容器有多常见 假设内存连续性不是必需的 这似乎提供了一些有趣的功能 例如 您可以有一个QObject并为其提供不同类型的子级 然后根据其类型轻松找到所有子级 从而
  • 如何构建boost静态库?

    这可行 但不会构建 boost 库的静态版本 也许我错了 bjam toolset gcc prefix C boost 1 49 0 mingw install 尝试发出以下命令 bjam toolset gcc prefix C boo
  • 在 post 请求中发送文件

    在 python 中 我发送这样的文件 with open D someimage jpg rb as image imager image read files image imager r requests post url files
  • AWS SAM - 模板没有任何连接到 Lambda 函数的 API

    因此 我尝试将现有的 Spring Boot 应用程序转换为 AWS lambda 并使用 SAM 我正在尝试使用 aws sam cli 在本地尝试我的 lambda 但是通过我的 SAM 设置 我得到 Template does not
  • 使用 printf 打印浮点数时额外的前导零?

    我希望能够编写一个如下所示的时间字符串 1 04 02 1 hours使用 printf 当我尝试写这样的东西时 printf d 02d 02 1f hours n 1 4 2 123456 I get 1 04 2 1 hours 是否
  • 在相同的 Javascript 上下文中创建带有附加 svelte 组件的窗口

    我使用 Sapper 框架 我想打开我自己的开发工具窗口 该窗口应该能够完全访问主窗口的 Javascript 对象 我正在尝试创建一个带有 svelte 组件和相同 Javascript 上下文的新窗口 var win window op
  • Django,UserChangeForm 错误

    我正在制作一个自定义用户表单 用户可以在其中更改一些详细信息 它有两个错误 但我无法理解问题所在 第一个问题是表单没有填写用户详细信息 这似乎是因为selfform初始化时为空 为什么 第二个问题是 当我提交此表单时 它会抱怨一些 KeyE
  • 在Eclipse中,如何运行修改上下文路径的Tomcat Maven插件

    在安装了 m2 Maven 插件的 Eclipse 中 我可以使用 Run on Server 命令通过 Eclipse WTP 在 Tomcat 中运行我的 web 应用程序 现在我想通过 Maven 修改上下文路径 所以我使用以下插件
  • params=True 的 Altair 回归变换:当有多个组时如何访问 r² 和 coeffs

    我在用transform regression在图表中创建回归线和相应的方程文本 对于单个回归 这工作得很好 但是对于 setgroupby something 选项 文本将绘制在彼此之上 我尝试使用构建字符串lineBreak n 但这没
  • Tomcat 7.0.73 不适用于 java 9

    由于 catalina sh 中的默认 java endorsed dirs 选项 无法使用 java 9 启动基于 tomcat 的应用程序 Djava endorsed dirs usr local share tomcat endor
  • MVC4 - 如何从剃刀视图调用控制器方法

    我是 MVC 新手 有人可以帮助我并解释如何从视图调用控制器方法吗 我有 HomeController 里面有 ShowFileContent 方法 HttpPost public ActionResult ShowFileContent
  • python:打开并读取包含德语变音符号的文件作为unicode

    我已经编写了程序来从文本文件中读取单词并将它们输入到 sqlite 数据库中并将它们视为字符串 但我需要输入一些包含德语变音符号的单词 这是一段准备好的代码 我都用 尝试过 编码 iso 8859 15 和 编码 utf 8 没有不同 co
  • PayPal 重定向到相同的弹出窗口

    我在我的网页中集成了 PayPal 的 Identity API 像往常一样 当用户点击时login with paypal JavaScript 按钮 https developer paypal com webapps develope
  • 替换 ASP.NET Core 中的 @helper

    到目前为止 我不认为ViewComponent解决了也没有解决的问题TagHelper 有什么替代品吗 接受参数并返回一个的东西HtmlString 我没有看到任何有害的东西 helper foo string something div