2014-10-06 78 views
0

我傳遞一個字符串與從控制器的URL到視圖(使用模型)。 雖然字符串在控制器中,但它沒有編碼,但在視圖中編碼了URL。編碼之前無法解碼由MVC編碼的URL字符串

URL:編碼後

http://app.xpinator.com/FacebookPayments/FacebookDesktopAdData?paymentCode=s5usd920k&userLocale=en-us&ver=v3.0.1

URL:

http://localhost/FacebookPayments/FacebookPaymentItemData?paymentcode=v250usd45000k&userlocale=en-us&ver=v3.0.1

在視圖中的相關線:

<meta property="og:url" content="@Model.URL" />

我想在視圖中顯示解碼的URL。我嘗試使用HttpUtility.HtmlDecode,HttpUtility.UrlDecodeHtml.Raw - 沒有任何工作。

任何想法?

編輯:

由於丹尼爾的評論,我意識到,當URL是元屬性編碼是唯一的發生。當其「可顯示」HTML沒有編碼時。

無論如何,仍然在尋找解決方案。

+0

你確定'@ Html.Raw(Model.URL)'不起作用嗎? – 2014-10-06 10:28:01

+0

當然。我嘗試了不止一次... – goldor 2014-10-06 10:48:14

+0

這對我很有用,檢查[這個小提琴](https://dotnetfiddle.net/Gk9lXi) – 2014-10-06 11:03:29

回答

0

後實現問題meta標籤只發生,我發現這個線程: Why is Html.Raw escaping ampersand in anchor tag in ASP.NET MVC 4?

我設法與建議的解決方法解決問題,使原始值的整個meta標籤的一部分。

這樣的:

控制器:

model.URL = string.Format("{0}{1}{2}", "<meta property=\"og:url\" content=\"", paymentItemOG.URL, "\" />"); 

查看:

<meta property="og:image" content="@Model.Image" /> 
@Html.Raw(Model.URL) 
<meta property="og:description" content="@Model.Description" /> 

頁查看源代碼:

<meta property="og:image" content="http://localhost/content/images/75x75_fullLogo.png" /> 
<meta property="og:url" content="http://localhost/FacebookPayments/FacebookPaymentItemData?paymentcode=v250usd45000k&userlocale=en-us&ver=v3.0.1" /> 
<meta property="og:description" content="texttexttext" /> 

現在,它的偉大工程。