Asp.net mvc 3 是否可以使用Razor'将Razor构造传递给助手方法;s:接线员??
我试图将一些使用razor的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接收到字符
@:
操作符构建的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>
))