2010-02-09 36 views
0

我目前運行的網站,我使用的是從了Itemplate繼承來包裝我所有的用戶控件的控制。在MVC中替換ITemplate?

基本上它是什麼,是一個不錯的邊框的表,我能夠傾倒東西在裏面,所以如果我更改容器模板,所有容器在網站上的更改...

我現在正在使用MVC 2重建整個應用程序的過程中,有誰知道我可以實現相同的「容器「像MVC模板?

回答

0

我管理的感謝名單下面是一個例子:

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<%}%> 
0

有幾種方法可以在MVC中做到這一點,但我可能會建議使用自定義HTML Helper

有一個關於如何實現類似in this post的例子。有關更多信息,請參閱that post中標題爲「創建DataGrid助手」的部分。我認爲你將能夠適應這個例子來適應你的目的。

+0

我一直在試圖建立某種形式的幫助來實現這一目標。 如果一個<使用(Html.BeginForm()){%%> CONTENT該處 <% } %> 這基本上包裹在一個形式的內容着眼於 。 沒有人知道這是如何工作?我需要的是,以基本上去 <%使用(Html.BeginContainer()){%> CONTENT該處 <% } %> ,我想該容器是某種的一個div,具有附加到其上的類 – 2010-02-10 08:09:14