【发布时间】:2012-02-27 18:57:25
【问题描述】:
我有一个名为EditableArea 的助手,它为用户提供运行时可编辑的div(通过JS)。 EditableArea 助手检查 DB 中是否存在具有指定 ID 的可编辑区域(与 MVC 的 Area 无关),如果存在则呈现该区域的 HTML,否则显示指定为助手参数的默认标记:
@Html.EditableArea(someId, "<p>Click to edit contents</p>")
一切正常,但我想更改它,以便将默认标记指定为不是字符串,而是以剃刀语法指定,例如:
@using (Html.EditableArea(someId))
{
<p>Click to edit contents</p>
}
或者类似的东西,比如@sections 在 MVC3 中的工作方式。
我怎样才能做到这一点?
我可以创建一个IDisposable,在其Dispose 中关闭TagBuilder 等,但是使用这种方法仍然会呈现标记(我可以清除Dispose() 中呈现的内容,但代码块会仍然不必要地运行,我想避免)。
是否有其他方法可以将剃刀块传递给助手,它可能会或可能不会实际呈现?
【问题讨论】:
标签: c# asp.net asp.net-mvc-3 .net-4.0 razor