首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能在@Helper中使用@Helper吗?

你能在@Helper中使用@Helper吗?
EN

Stack Overflow用户
提问于 2012-05-10 02:34:20
回答 1查看 1.5K关注 0票数 3

我不确定这是不是可能的。

我在一个视图和其他视图中有一堆@Helper

代码语言:javascript
复制
@helper ViewHelper1()
{
   ...
}
@helper ViewHelper2()
{
   ...
}
etc.

我有在视图和其他视图中使用的重复代码:

代码语言:javascript
复制
@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

可以这样说:

代码语言:javascript
复制
@helper Table(...) 
    {
        ...
    }

或者这是否可能,然后在视图中调用它,如下所示:

代码语言:javascript
复制
@Table(HelperView1)

如果是这样的话,我只是需要语法方面的帮助。

一如既往,非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-10 04:58:52

生成的剃刀帮助器只是返回类型为HelperResult的函数。您可以让委托将HelperResult作为参数返回到您的主帮助器中,并在适当的位置调用它们。

下面是一个小示例,可以帮助您入门:

代码语言:javascript
复制
@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)

生成的输出:

代码语言:javascript
复制
Reuslt of viewHelper
<h1>View1</h1>

Reuslt of viewHelper
<h2>View2</h2>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10522049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档