我不确定这是不是可能的。
我在一个视图和其他视图中有一堆@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>结构是相同的,所以我想知道如何在App_Code中创建一个@Helper来封装<td>结构,然后传递视图的@Helper。
可以这样说:
@helper Table(...)
{
...
}或者这是否可能,然后在视图中调用它,如下所示:
@Table(HelperView1)如果是这样的话,我只是需要语法方面的帮助。
一如既往,非常感谢。
发布于 2012-05-10 04:58:52
生成的剃刀帮助器只是返回类型为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>https://stackoverflow.com/questions/10522049
复制相似问题