我仍然对 MVC 感到困惑,并且在一个使用大量“图块”(你知道,通常的“带有标准化标题和一些内容的矩形部分”模式)用于视觉显示的网站上工作。没有什么花哨的,只是一种将内容放入框中以便于布局和导航的方法。目前,“瓷砖”(我的术语)是这样构建的:
<div class="tile">
<div class="tile-header">
<h2>Title</h2>
</div>
<div class="tile-body">
(arbitrary content)
</div>
</div>
注意:“任意内容”是指任何内容,无论是静态的还是动态的,所以不一定是我可以插入变量并传递给助手的东西,我需要更多的灵活性。
我的问题是,用于封装此模式并使从代码调用更容易/更具表现力的最佳方法是什么?我知道部分视图,但我如何将任意正文内容传递给部分视图?(这可能只是我对 MVC 展示的有限了解)
我尝试像这样构建 Razor 助手:
@Tile.Begin("Title")
(arbitrary content)
@Tile.End()
但是 Razor 窒息,因为我不能包含“tile-body”关闭 div。(如果我这样做了,那么我必须将正文内容作为字符串变量传递,这并不总是可行的)
我可以看到这样的东西:
@using (Tile.Begin("Title")) {
(arbitrary content)
}
这对我来说似乎是最优雅的,虽然不像 @Tile.Begin() 和 @Tile.End() 调用那么容易扫描。据我了解,我必须创建一个类并实现 IDisposable,但是当我尝试从帮助类返回一串原始 HTML 标记时,它只是将编码的标记语法写入屏幕,所以我假设我会遇到同样的问题在这里?
感谢您的任何建议。:)