我不确定这是可能的。
我在视图和其他视图中有一堆@Helper
:
@helper ViewHelper1()
{
...
}
@helper ViewHelper2()
{
...
}
etc.
我有在视图和其他视图中使用的重复代码:
@if (!(Model.Entity == Model.Enum.One))
{
<td>
@ViewHelper1()
</td>
}
else
{
<td>
@ViewHelper1()
</td>
<td>
@ViewHelper1()
</td>
}
实际的@ViewHelper1
代码更复杂,但这并不重要(我认为)。
好吧,因为每个视图都有一些@Helper
个(30多个视图,每个视图10-15个@Helper
)并且<table>
结构是相同的,所以我是想知道如何在@Helper
中创建一个封装App_Code
结构的<td>
,然后传递视图的@Helper
。
说:
@helper Table(...)
{
...
}
或者是否可能,然后在视图中调用它:
@Table(HelperView1)
如果是,我只需要语法帮助。
一如既往,非常感谢。
答案 0 :(得分:2)
生成的剃刀助手只是返回类型为HelperResult
的函数。
您可以让代理人在主帮助程序中返回HelperResult
作为参数,并在适当的位置调用它们。
一个小样本可以帮助您入门:
@helper View1()
{
<h1>View1</h1>
}
@helper View2()
{
<h2>View2</h2>
}
@helper Table(Func<HelperResult> viewHelper)
{
<text>Reuslt of viewHelper</text>
@viewHelper()
}
@Table(View1)
@Table(View2)
生成的输出:
Reuslt of viewHelper
<h1>View1</h1>
Reuslt of viewHelper
<h2>View2</h2>