Asp.net mvc 3 是否可以使用Razor'将Razor构造传递给助手方法;s:接线员??

Asp.net mvc 3 是否可以使用Razor'将Razor构造传递给助手方法;s:接线员??,asp.net-mvc-3,razor,helper,Asp.net Mvc 3,Razor,Helper,我试图将一些使用razor的@:操作符构建的Html传递给助手方法,但我不知道如何做到这一点。编译器声明Razor表达式是一个lambda表达式,但它没有说,这个lambda表达式是什么样的。。。没有任何线索 如果我尝试这样做: @(MyClass.MyMethod(new { Html = @:<div></div> } )) 如果MyMethod接收到字符

我试图将一些使用razor的
@:
操作符构建的Html传递给助手方法,但我不知道如何做到这一点。编译器声明Razor表达式是一个lambda表达式,但它没有说,这个lambda表达式是什么样的。。。没有任何线索

如果我尝试这样做:

        @(MyClass.MyMethod(new
            {
                Html = @:<div></div>
            }
        ))
如果MyMethod接收到字符串:即
公共字符串MyMethod(string razorConstructedString)
,然后编译器说:
无法将lambda表达式转换为类型“string”,因为它不是委托类型

问题是:我应该声明什么类型的MyMethod,以便它可以接收razor构造的参数?

谢谢

这称为一个。
这是一个
Func


您可以使用参数调用此委托,该参数将在名为

的帮助器中可访问。为什么我不能或如何通过
Func
?它失败=(我不希望
@helper(Funcbody){@body(null)}
@Maslow:因为Razor编译器生成了一个带有参数的lambda。请参阅我的博客文章。我已经阅读了你关于这个主题的大部分页面,但仍然没有找到一个干净的方法来完成我试图做的事情。@Maslow:你需要传递
null
。Razor不可能同时允许参数化和非参数化我很肯定我知道我做错了什么,谢谢你的意见。
        @(MyClass.MyMethod(
            @:<div></div>
        ))