gpt4 book ai didi

c# - Razor 中的共享辅助函数

转载 作者:行者123 更新时间:2023-11-30 21:53:36 25 4
gpt4 key购买 nike

在我的 C# 项目中,我在 App_Code 文件夹下有一个名为 MyHelpers.cshtml 的文件,其中包含以下代码:

    @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>
}

我直接在根文件夹下创建了一个MyTest.cshtml,内容如下:

<!DOCTYPE html>
<head>
<title>Test Helpers Page</title>
</head>
<body>
<p>This is some opening paragraph text.</p>

<!-- Insert the call to your note helper here. -->
@MyHelpers.MakeNote("My test note content.")

<p>This is some following text.</p>
</body>
</html>

App_Code/MyHelpers.cshtml 在从 MyTest.cshtml 调用时工作。

我正在使用 RazorEngine 生成 HTML 电子邮件,我的实际模板文件存储在名为 EmailTemplates 的文件夹中。当我在 EmailTemplates 的任何 CSHTML 文件中插入同一行 @MyHelpers.MakeNote("My test note content.") 时,我收到以下错误:

The server encountered an error processing the request.
The exception message is 'Unable to compile template.
The name 'MyHelpers' does not exist in the current context.
Other compilation errors may have occurred.
Check the Errors property for more information.'

如何获取 EmailTemplates 文件夹中的 CSHTML 文件以使用 App_Code/MyHelpers.cshtml 中的 MakeNote 函数,就像 MyTest.cshtml 如何使用它一样?

最佳答案

我用另一种方式做这些事情。

@Html.Action("MakeNote", "Helper", "My test note content.")

其中Helper是一个带有action MakeNote的 Controller

[ChildActionOnly]
public ActionResult MakeNote(string model)
{
return PatialView(model);
}

局部 View 位于~/Views/Helper/MakeNote.cshtml

关于c# - Razor 中的共享辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com