首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MVC中替代ITemplate?

在MVC中替代ITemplate?
EN

Stack Overflow用户
提问于 2010-02-10 02:35:10
回答 2查看 261关注 0票数 0

我目前正在运行一个网站,我使用一个继承自ITemplate的控件来包装我所有的用户控件。

基本上,它是一个有漂亮边框的表格,我可以在里面倾倒任何东西,所以如果我改变容器模板,所有的容器都会经过站点的更改……

我现在正在使用MVC2重新构建整个应用程序,有没有人知道有什么方法可以在MVC中实现类似于模板的“容器”?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-10 16:41:06

我管理了Thanx,下面是一个例子:

代码语言:javascript
复制
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());
    }
}

然后我基本上按如下方式使用它:

代码语言:javascript
复制
<% using( Html.BeginBlock("TITLE>CONTENT GOES HERE<%}%>
票数 0
EN

Stack Overflow用户

发布于 2010-02-10 07:41:31

在MVC中有几种方法可以做到这一点,但我可能会建议使用自定义的HTML Helper

这里有一个关于如何实现类似in this post的例子。有关详细信息,请在that post中查找标题为“创建DataGrid帮助器”的部分。我认为您将能够调整该示例以满足您的目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2231501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档