我目前正在运行一个网站,我使用一个继承自ITemplate的控件来包装我所有的用户控件。
基本上,它是一个有漂亮边框的表格,我可以在里面倾倒任何东西,所以如果我改变容器模板,所有的容器都会经过站点的更改……
我现在正在使用MVC2重新构建整个应用程序,有没有人知道有什么方法可以在MVC中实现类似于模板的“容器”?
发布于 2010-02-10 16:41:06
我管理了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<%}%>发布于 2010-02-10 07:41:31
在MVC中有几种方法可以做到这一点,但我可能会建议使用自定义的HTML Helper。
这里有一个关于如何实现类似in this post的例子。有关详细信息,请在that post中查找标题为“创建DataGrid帮助器”的部分。我认为您将能够调整该示例以满足您的目的。
https://stackoverflow.com/questions/2231501
复制相似问题