2012-04-26 28 views
7

我使用Razor作爲模板語言構建了一個ASP.NET MVC 3應用程序。是否可以在將其發送到客戶端之前修改剃鬚刀視圖引擎的輸出?

下面是我想要做的: 當某個請求的cshtml文件中的所有模板內容已經在剃刀視圖引擎中解析並準備輸出給訪問者時 - 那麼我想插入一些額外的信息到解析的html內容。

所以我的問題是: 是否有任何類型的事件掛鉤到Razor viewengine內部或MVC框架內,允許我對輸出進行這種更改?

不要問爲什麼我想在MVC應用程序中這樣做,這是一個漫長而無聊的故事。

+0

你們是不是要修改剃刀亦使後生成的HTML?如果是這樣,你可以修改cshtml文件嗎?如果沒有,它可以完成,但不建議。 – Buildstarted 2012-04-26 18:18:08

+0

我知道這不是建議,但我很遺憾需要和修改cshtml是在「週期」後期。 無論如何..你有什麼建議如何做到這一點? – 2012-04-26 18:28:18

+1

如果是這種情況,請參閱此問題:http://stackoverflow.com/questions/8642148/how-to-intercept-view-rendering-to-add-html-js-on-all-partial-views – Buildstarted 2012-04-26 18:39:36

回答

0

鑑於你的問題的含糊不清,也許這篇文章可以幫助,或者你可以用什麼樣的文章是沒有幫助的指定...

Dependency Injection in ASP.Net MVC Views

UPDATE:

如何關於一個ActionFilter?我似乎記得,你可以在ActionFilter中獲得viewresult和tinker,儘管我只做過json轉換。這裏的另一篇文章:Use ASP.Net action filters to render

這裏有一個SO answer--this might be a duplicate question!

+0

就我所知,這篇文章的問題在於它沒有公開渲染週期中渲染所有內容的點上輸出的任何方法。文章示例中的Render方法將針對每個視圖執行。我正在尋找的是當Im確定已呈現所有內容時將數據注入輸出的方法。 – 2012-04-26 18:19:51

+0

對於您的特殊情況,您希望在離開服務器之前執行此操作,並且絕對無法在視圖本身中完成此操作? – brightgarden 2012-04-26 18:33:00

+0

是的,這是正確的。 – 2012-04-26 18:38:41

相關問題