2012-07-25 113 views
9

我在視圖中創建了String,並且希望將其輸出到屏幕。MVC Razor - 將文本輸出到屏幕

最初我嘗試了Response.Write,但由於本網站其他地方解釋的原因,內容出現在頁面的頂部。然後我嘗試使用@輸出字符串,如下所示:@myString

這工作,它在正確的位置輸出的文本,但它逃過了我放在那裏的HTML鏈接。我如何解決這個問題?

+0

直到您將任何回覆標記爲答案,您將獲得更多相同的回覆:) – VJAI 2012-07-25 17:11:26

回答

18

您可以使用Html.Raw()

@Html.Raw(MyStringVar) 
+0

感謝您的答案。這幫助我解決了這個問題:) – 2014-12-04 13:25:25

3

而是字符串你將要使用:

@{ 
    var myString = new MvcHtmlString("<tags>Text</tags>"); 
} 

然後,當你在線使它:

@myString 

它會顯示正確的值,而不是逃脫文本。

編輯:另類

另一種選擇是你可以創建MvcHtmlString直列所以它呈現恰如其分。

@(new MvcHtmlString(myString)) 
+2

甚至更​​好'@ MvcHtmlString.Create(myString)' – Silvermind 2012-07-25 15:32:11

+0

@Silvermind'MvcHtmlString.Create'實際上只有'new MvcHtmlString' ...但同意在Razor視圖中語法變得更清晰。請參閱https://github.com/ASP-NET-MVC/aspnetwebstack/blob/4e40cdef9c8a8226685f95ef03b746bc8322aa92/src/System.Web.Mvc/MvcHtmlString.cs#L22 – 2018-01-02 12:54:00

3

可以使用Html.Raw功能此

例如:

@Html.Raw(Model.YourString) 
2

你可以這樣做:

@Html.Raw(myString) 
3

@model的myString

@ Html.Raw(型號)

嘗試@ Html.Raw(myString的)。

我不建議這樣做。出於各種原因,您不會將html輸出發送到屏幕。如果要將文本放在屏幕的某個部分,請在視圖中使用html/css樣式並僅發送輸出。

+0

有些情況下,像用戶控件基於HTML助手,你想直接發送HTML到屏幕。一般來說,我會同意你的看法,但是我正在制定的當前體系結構對基本用戶控件和直接HTML呈現有巨大的需求。所以我不太快判斷別人想要渲染內聯HTML(雖然有更好的方法可以完成這個任務,但是誰知道他們爲什麼需要這樣做)。 – VulgarBinary 2012-07-25 16:29:19