我目前正在运行一个网站,我使用一个从ITemplate继承的控件来包装我的所有用户控件。
基本上它是一个带有漂亮边框的表,我可以在那里转储任何东西,所以如果我更改容器模板,整个站点的所有容器都会发生变化......
我现在正在使用MVC 2重建整个应用程序,有没有人知道我可以在MVC中实现相同的“容器”模板?
答案 0 :(得分:0)
在MVC中有几种方法可以做到这一点,但我建议使用自定义HTML Helper。
有一个关于如何实现类似in this post的例子的例子。有关详细信息,请查看that post中标题为“创建DataGrid助手”的部分。我认为你将能够适应这个例子以适应你的目的。
答案 1 :(得分:0)
我管理的Thanx就是一个例子:
public static class Block
{
public static BlockHelper BeginBlock(this System.Web.Mvc.HtmlHelper content, string title)
{
return new BlockHelper(content, title);
}
}
public class BlockHelper : IDisposable
{
private readonly HtmlHelper _content;
private readonly HtmlHelper _title;
public BlockHelper(System.Web.Mvc.HtmlHelper content, string title)
{
_content = content;
StringBuilder sb = new StringBuilder();
sb.Append("<div>");
sb.Append("<div><h1>" + title + "</h1></div>");
_content.ViewContext.Writer.Write(sb.ToString());
}
public void Dispose()
{
StringBuilder sb = new StringBuilder();
sb.Append("</div>");
_content.ViewContext.Writer.Write(sb.ToString());
}
}
然后我基本上使用它如下:
<% using( Html.BeginBlock("TITLE>CONTENT GOES HERE<%}%>