我有一個URL,我想在Razor視圖中將其作爲原始標記呈現。我原以爲Html.Raw會是這樣的:爲什麼Html.Raw會在ASP.NET MVC 4中的錨標記中轉義&符號?
@{
string test = "http://someurl.com/someimage.png?a=1234&b=5678";
}
<div>
<a href="@Html.Raw(test)">Test</a>
</div>
但是這不起作用。該符號被編碼和HTML呈現爲:
<div>
<a href="http://someurl.com/someimage.png?a=1234&b=5678">Test</a>
</div>
奇怪的是,如果我做Html.Raw呼叫錨標記之外,如預期的HTML輸出:
<div>
@Html.Raw(test)
<div>
被渲染爲:
<div>
http://someurl.com/someimage.png?a=1234&b=5678
</div>
任何人都可以解釋爲什麼這是?
編輯:
嘗試了一些其他的東西出來,發現預期了以下工作:
<div data-url="@Html.Raw(test)"></div>
輸出:
<div data-url="http://someurl.com/someimage.png?a=1234&b=5678"></div>
要添加多一點背景下,我的目標實際上並不是使用錨定標記中的URL,因爲href
s可以是HTML編碼並仍然有效(我只是使用了一個chor標記案例爲例)。相反,我希望使用Flash對象的<object> <param>
值標記中的URL。 Flash對象不能正確識別HTML編碼的URL,但我無法正確輸出原始URL。
我不知所措。時間打出來的MVC源代碼,我猜...
可能重複http://stackoverflow.com/questions/12321616/why-is-mvc-4-razor-當使用html-raw-in-a-title-attribute)時,轉義字符-anpersand- – 2015-03-27 15:04:45