我在.cshtml文件中运行下面的剃刀代码(它是我需要实现的更复杂的简化版本),但renderTestB
助手似乎没有执行
@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
帮助器中复制段落代码,但显然更喜欢可重用的代码解决方案。
答案 0 :(得分:0)
这样的事情怎么样?
@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功能。
至于为什么你不能嵌套它们。它引入了一些使用上面建议的语法可以轻松避免的问题。例如......如果你有一个循环的嵌套助手循环,它很容易导致堆栈溢出。