2017-05-09 184 views
-1

我想知道是否有可能將其發送到瀏覽器之前修改HTML視圖修改之前查看HTML。C#MVC呈現在瀏覽器

我想創建一個自定義標籤的編譯器,我可以插入一個簡單的標籤作爲<my-parsing-tag></my-parsing-tag>的視圖,並更換某些特定HTML。

我已經在使用OnActionExecutingOnActionExecuted過濾器對上下文執行一些操作(更改ViewBags,視圖名稱,會話等),我也試過在那裏做,但我找不到正確的位置來獲取HTML,我甚至不知道是否有可能這樣做。

是否有可能或者我需要存儲在數據庫上我的意見HTML來完成我需要什麼?

編輯

由於@Juan問,爲什麼我需要它:

我和行動系統中的呼叫工作,用戶可以在頁面上放置一些特定的模式運動,他希望剛使用這些簡單的標籤或選擇將顯示它的頁面。

後,我將其發送給用戶之前所選擇的HTML到視圖追加。該系統適用於無法編輯視圖的用戶,因爲他們不適用於HTML。

EDIT 2

一些研究,我試圖實現自定義RazorView後,代碼爲here與指數查看HTML,但現在我有兩個問題:

第一個是我的索引視圖有一些來自數據庫的HTML,並使用我的ViewModel上的變量放置在那裏,而不是將調用HTML放置在我的索引視圖的末尾,它放置在ViewModel變量之前。第二個問題是HTML被重複而不是被替換。下面是結果怎麼看起來像一個形象:

http://imgur.com/a/elul1

+0

爲什麼要重新發明輪子?你需要用你的「自定義」標籤做什麼? – JuanR

+0

@Juan,我用解釋更新了我的問題。 – Terkhos

+0

這是否意味着用戶將在某個字段中鍵入該字段並在運行時替換它?我不確定自己明白。 – JuanR

回答

1

您可以使用此一的HtmlHelper擴展:

http://tech.trailmax.info/2012/08/creating-custom-html-helper-in-mvc3/

我建議如下:

  • 在您的模板中定義一個容器(最有可能的佈局),該容器將接收用戶通過管理面板決定「放入」的任何內容。
  • 你讓視圖知道有件事通過ViewBag顯示。
  • 視圖使用你爲了呈現所需的內容傳遞的信息。

它是如何呈現HTMLHelper擴展的地方。您可以創建一個擴展方法,根據傳遞給它的信息或可能根據需要選擇調用的一組擴展方法小部件。

+0

這可以工作,但我並不總是要放下用戶HTML在底部,它可以放在頁面的任何地方,這就是爲什麼需要'',那也是要攔截解析的視圖html嗎? – Terkhos

+0

沒關係。不要放棄自定義標籤,而是將呼叫放到HtmlHelper擴展中。 – JuanR

+0

這對我來說真的沒有用,我無法設法讓它在解析的HTML上工作,並將它注入用戶,你有沒有任何工作的例子? – Terkhos