2011-02-11 54 views
13

我有一個字符串,我想編碼成標準的URL格式。從我發現的情況來看,我應該可以通過httpUtility.urlEncode方法做到這一點,但我似乎沒有這樣的可用方法。爲什麼我無法在Visual Studio 2010中找到或使用UrlEncode?

我已經添加「使用」引用System.WebSystem.Net無濟於事。我還在其他變體中看到了對server.urlEncode的其他引用,但我沒有在任何地方看到該方法。

我在Visual Studio 2010中使用C#的最新版本。該方法在此版本中稱爲不同的東西,隱藏在其他地方,還是我完全脫離基地?

回答

28

默認情況下,Visual Studio 2010中的新項目的目標是.NET Framework 4.0 客戶端配置文件,其中不包含System.Web程序集。

您可以更改項目目標在您項目的屬性中的框架版本。在「應用程序」選項卡下,從標有「目標框架」的組合框中選擇「.NET Framework 4.0」。

然後,確保您使用「添加引用」對話框添加了對System.Web的引用。

最後,添加一個using directive到類的頂部爲System.Web命名空間:

using System.Web; 


你會找到UrlEncode method的各種重載的HttpUtility類。示例代碼:

​​
2

由於Visual Studio不提供類或方法名稱,因此無法命名爲不同的.NET框架。

我只能告訴你的是System.Web。 HttpUtility AND System.Web。 HttpServerUtility類包含一個名爲UrlEncode(string)的方法。

+0

它們也包含該方法的[其他幾個重載](http://msdn.microsoft.com/zh-cn/library/s2x4538s.aspx)。 `HttpServerUtility.UrlEncode`在內部簡單地調用`HttpUtility.UrlEncode`;他們是一樣的方法。 – 2011-02-11 08:50:08

+0

System.Web給我的所有內容包括:AspNetHostingPermission,AspNetHostingPermissionAttribute和AspNetHostingPermissionLevel – Sootah 2011-02-11 08:57:37

+0

這會非常強烈地表明您缺少對System.Web dll的引用,或者您指向的配置文件錯誤。 – 2011-02-11 09:07:13

0

因爲你只看到AspNetHostingPermissionAspNetHostingPermissionAttributeAspNetHostingPermissionLevel,我強烈懷疑(像其他人),您就錯過一個參考。

您可以做的最好的事情就是開始一個新項目,因爲添加/刪除引用非常複雜,而且不會破壞整個項目。

How to: Add or Remove References in Visual Studio(MSDN)顯示如何添加/刪除引用。在你的情況下,你應該檢查/添加System.Web參考。

1

是的,添加參考是我的答案。但是,如果您的解決方案中包含多個項目,請務必仔細檢查該項目是否在運行。我有3個項目的解決方案。 System.Web被添加到2個項目,但不是第3個項目。

我花了一個小時試圖找出爲什麼我不能使用HttpUtility,因爲它是主項目中的參考。但我沒有檢查解決方案的子項目。

希望它可以幫助別人。

1

如果您的項目目標是「.NET Framework X客戶端配置文件」,則不能使用「System.Web」,但可以使用「Uri.EscapeUriString | Uri.UnEscapeUriString」代替。

3

在.Net 4.5中,您可以(應該?,'請使用'表示Katana評論)使用System.Net.WebUtility.UrlEncode方法。

相關問題