loz*_*ozz 6 asp.net-mvc razor asp.net-mvc-4
我在.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>
}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?还有另一种方法可以实现我想要做的事情吗?
我意识到我可以在renderTestA帮助器中复制段落代码,但显然更喜欢可重用的代码解决方案.
像这样的事情怎么办?
@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>
}
Run Code Online (Sandbox Code Playgroud)
您应该考虑使用编辑器/显示模板或自定义 HTML 帮助程序,因为 @helper 功能在这些功能成为规范之前就已使用。
至于为什么不能嵌套它们。它引入了许多问题,通过使用我上面建议的语法可以轻松避免这些问题。例如......如果你有一个嵌套助手的循环,它很容易导致堆栈溢出。
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |