是否可以使用 Razor 的 @: 运算符将 Razor 构造传递给辅助方法?
我试图将一些使用 razor 的 @:
运算符构造的 Html 传递给辅助方法,但我不知道如何执行此操作。编译器声明 Razor 表达式是一个 lambda 表达式,但它没有说,这个 lambda 表达式是什么样的......根本没有任何线索!
如果我尝试这样做:
@(MyClass.MyMethod(new
{
Html = @:<div></div>
}
))
错误如下: 无法将 lambda 表达式分配给匿名类型属性
如果我尝试这样做,那么它会再次将其声明为 lambda:
@(MyClass.MyMethod(
@:<div></div>
))
如果 MyMethod 接收字符串:即 public string MyMethod(string razorConstructedString)< /代码> ,然后编译器会说:
无法将 lambda 表达式转换为类型“string”,因为它不是委托类型
。
问题是:我应该声明什么类型的MyMethod,以便它可以接收razor构造的参数?
谢谢!
I am trying to pass some Html constructed by using razor's @:
operator to a helper method, but I can not figure out how to do this. The compiler states that the Razor expression is a lambda expression, but it does not say, what is this lambda expression like... no clues at all!
If I try to do this:
@(MyClass.MyMethod(new
{
Html = @:<div></div>
}
))
The error is as follows:Cannot assign lambda expression to anonymous type property
If I try this instead, then it states it as being a lambda again:
@(MyClass.MyMethod(
@:<div></div>
))
If the MyMethod receives a string: i.e. public string MyMethod(string razorConstructedString)
, then the compiler says: Cannot convert lambda expression to type 'string' because it is not a delegate type
.
The question is: what type should I declare MyMethod, so that it can receive the razor constructed parameter?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这称为内联助手。
它是一个
Func
。您可以使用参数调用此委托,并且可以在名为
item
的帮助程序中访问该参数。This is called an inline helper.
It's a
Func<AnyType, HelperResult>
.You can call this delegate with a parameter, and the parameter will be accessible in the helper, named
item
.