用于声明呈现html的动作的Razor语法

时间:2011-03-10 17:27:47

标签: asp.net-mvc-3 razor

我正在尝试创建一个在剃刀视图引擎中呈现一些html的动作。这在webforms引擎中非常简单,但我在使用razor时遇到了一些问题。这是我使用webforms引擎尝试完成的最简单的形式:

<% var myAction = new Action<HtmlHelper<int>>((helper) => { %>
    <div>
        <%= helper.ViewData.Model %>
    </div>
<%}); %>

我最接近剃刀视图的引擎是:

@{var myAction = new Action<HtmlHelper<int>>((help) =>
              {
                    @<div>
                        @help.ViewData.Model
                    </div>;
              });
}

这给出了“CS0201:只有赋值,调用,递增,递减和新对象表达式可以用作语句”错误。

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

@{
    Func<dynamic, object> myAction = 
        @<div>
            @item.ProductName
        </div>;
}

@myAction(Model)

您也可以结帐following blog post


更新:

你也可以这样做:

@{
    Func<HtmlHelper<int>, object> myAction = @<div>@item.ViewData.Model</div>;
}

或:

@{
    Func<dynamic, object> myAction = @<div>@item.ViewData.Model</div>;
}

并调用:

@myAction(someInstanceOfTheRequiredHelper)