2015-11-02 21 views
1

這似乎沒有道理。在MVC項目中使用System.Device

我想在項目中使用System.Device庫來利用地理位置功能。我像往常一樣將代碼添加到Razor頁面。

我到庫的引用和我的使用與Razor視圖的頂部增加:

@using System.Device; 

設備有紅色下劃線,因爲它不能被發現。鍵入System.D在智能感知中不產生Device。這似乎沒有意義,因爲圖書館是肯定引用。

web.config在Views中沒有提及System.Device。如果我對「設備」的解決方案進行全面搜索,那麼我不會在任何地方提及它。

我打開和關閉文件,刪除參考,重新啓動VS,重新啓動我的電腦。一切。它仍然存在。

我覺得要麼有我不知道的東西,要麼我在做一些愚蠢的事情。我在這裏錯過了什麼嗎?

+0

你想要服務器或客戶端的地理位置嗎? Razor頁面運行在服務器端,而不是客戶端。 –

+0

我只是想要使用這個功能,實際上我只是利用了能夠告訴我經緯度座標差異的方法。 – Jon

+0

除了試圖包含這一點,只需獲得大圓距離的公式並使用它即可,它是一個簡單的計算,並不要求您嘗試包含與ASP無關的庫。 –

回答

1

web.config在Views中沒有提及System.Device。

您需要將System.Device添加到您的web.config中。根據您是否使用區域,您可能需要將其添加到該區域的web.config中。如果它不在web.config中,剃鬚刀不知道它。

<namespaces> 
    <add namespace="System.Device" /> 
</namespaces> 

此外,嘗試設置Copy Local爲True System.Device的參考屬性。直到我完成這兩件事之後,它才奏效。

+0

您可以通過在視圖頂部鍵入'@ System.Whatever.Library'來引用單個Razor視圖的庫,你會任何C#文件。 – Jon

+0

將Reference設置爲Copy Local = true? –

+0

複製本地組合並將其添加到web.config似乎解決了這個問題。我想知道爲什麼當我在Razor視圖的頂部引用其他庫時就解決了這個問題。似乎沒有任何意義。 – Jon