gpt4 book ai didi

asp.net-mvc - 为什么一个 Razor 助手不能调用另一个助手?

转载 作者:行者123 更新时间:2023-12-04 16:08:19 24 4
gpt4 key购买 nike

我在 .cshtml 文件中运行下面的 razor 代码(它是我需要实现的更复杂的简化版本),但 renderTestB helper 似乎没有执行。

@renderTestA("test string 1", "test string 2");

@helper renderTestA(string input1, string input2)
{
<div>
@renderTestB(input1)
@renderTestB(input2)
</div>
}

@helper renderTestB(string input)
{
<p class="test">@input</p>
}

为什么是这样?还有另一种方法可以实现我想要做的事情吗?

我意识到我可以在 renderTestA 中复制段落代码helper,但显然更喜欢可重用的代码解决方案。

最佳答案

这样的事情怎么办?

@renderTestA(renderTestB("test string 1"), renderTestB("test string 2"))

@helper renderTestA(string input1, string input2)
{
<div>
@input1
@input2
</div>
}

@helper renderTestB(string input)
{
<p class="test">@input</p>
}

您应该考虑使用编辑器/显示模板或自定义 HTML 助手,因为 @helper 功能在这些功能成为常态之前就被使用了。

至于为什么你不能嵌套它们。它引入了许多问题,使用我上面建议的语法可以轻松避免这些问题。例如...如果您有一个嵌套帮助程序的循环循环,则很容易导致堆栈溢出。

关于asp.net-mvc - 为什么一个 Razor 助手不能调用另一个助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292671/

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