内部使用HTML帮助程序的HTML帮助程序

时间:2011-08-24 17:51:39

标签: asp.net-mvc-3 razor html-helper

我正试着把头包裹起来;也许有人可以指出我正确的方向。

目前有一个表单上有一些控件,如下所示:

@Html.ListBoxFor(s => s.SomeListSelection1, new MultiSelectList(Model.SomeList1, "Id", "Text"))
<br />
@Html.ListBoxFor(s => s.SomeListSelection2, new MultiSelectList(Model.SomeList2, "Id", "Text"))
<br />
@Html.ListBoxFor(s => s.SomeListSelection3, new MultiSelectList(Model.SomeList3, "Id", "Text"))
<br />

此表单出现在许多地方,可用的控件略有不同。

“轻微变化”使我不仅仅想将此作为局部视图,因为我需要将控件复制到许多稍微变化的部分中,或者将变体逻辑编码到视图中。

所以我想,“我知道,我会使用很酷的HTML帮助器!”

但是,所有在线HTML帮助程序示例都是非常简单的html内容。所以问题是如何在HTML帮助器中使用其他HTML帮助器?或者,如果这是错误的问题,还有另一个更清洁的替代方案,只是使用一堆条件渲染逻辑将其作为局部视图?

修改 虽然答案在技术上回答了我的问题,但我无法利用博客条目来解决我的问题。我在这里找到了一个更好的例子(对我来说): ASP.NET MVC 3 Custom HTML Helpers- Best Practices/Uses

1 个答案:

答案 0 :(得分:1)

是的,你可以。
助手可以包含任意Razor标记。

实际上,辅助方法的直接内容是代码块,而不是标记 有关帮助程序如何工作的更深入讨论,请参阅my blog