2013-02-28 47 views
0

我使用一個HTML助手返回一個IDisposable來創建一個特殊的DIV結構,我經常需要在我的應用程序中。此類的構造函數在創建Dispose方法以創建打開div時關閉Div。現在我需要保護我的應用程序,並且我希望這個結構不是在某些情況下創建的,但是我也需要使用這種在使用和結束之間產生的各種HTML,如果它的範圍也沒有呈現。使用範圍塊asp.net mvc Html創建

我所做的第一件事就是更換的TextWriter找到詮釋他用假ViewContext:

_helper.ViewContext.Writer = new StringWriter(new StringBuilder()); 

其每段代碼,直接使用ViewContext作家渲染HTML而不是爲別人打工(原HTML和其他幫助)

所以問題是:我們如何防止Asp.net視圖在使用塊的範圍內呈現HTML?

回答

1

我沒有任何示例代碼給你,這個想法很駭人,但可能工作,如果你有這些東西你需要保護,並沒有時間來添加條件邏輯。

如果您使用應用程序的Response.Filter去除html,該怎麼辦?然後在你的構造函數和處理方法中,如果用戶沒有被授權查看內容,請輸出一些容易找到的元素,您可以使用正則表達式替換或使用Html Agility Pack來解析/修改DOM,然後將流發送到瀏覽器。

+0

完全同意你,但我確實有一千個地方,它會被使用,將嘗試hackish過濾器的方法。 – VdesmedT 2013-03-08 10:55:04

3

恐怕目前沒有辦法阻止using塊的內容被渲染。無論如何,這不是這個區塊的原意。如果您想防止呈現某些內容,則可以考慮使用if語句。