【发布时间】:2019-12-09 06:12:31
【问题描述】:
我有asp.net core 2.2 项目。我想在我的项目中使用System.Web,但是当我尝试在我的控制器中使用它时,它会这样说
命名空间“System.Web”中不存在类型或命名空间名称“UI”(您是否缺少程序集引用?)[D:\Projects\analytics\analytics.csproj]
我有这样的 project.csproj 文件
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="IpGeoLocation.IpGeoLocation" Version="1.0.5" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="System.Web" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All"
/>
<PackageReference Include="MongoDB.Driver" Version="2.7.3" PrivateAssets="All" />
<PackageReference Include="MongoDB.Driver.Core" Version="2.7.3" PrivateAssets="All" />
<PackageReference Include="MongoDB.Bson" Version="2.7.3" PrivateAssets="All" />
</ItemGroup>
</Project>
我正在使用System.Web,因为我正在实施第三方插件ipinfo,以根据ip 地址获取用户的位置。所以在我的控制器中,我的功能就像
string ipInfoBaseUrl = "http://ipinfo.io/";
string userIpAddress = "66.54.123.13";
string ipUrl = ipInfoBaseUrl + userIpAddress;
string ipResponse = IPRequestHelper(ipUrl);
return ipResponse;
我的辅助函数是这样的
public string IPRequestHelper(string url)
{
string checkURL = url;
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
StreamReader responseStream = new StreamReader(objResponse.GetResponseStream());
string responseRead = responseStream.ReadToEnd();
responseRead = responseRead.Replace("\n", String.Empty);
responseStream.Close();
responseStream.Dispose();
return responseRead;
}
我正在使用 Visual Studio Code。我怎样才能摆脱这个错误?
【问题讨论】:
-
为什么要使用那个命名空间?你想使用什么类?
-
我正在实施第三方插件以根据 IP 地址获取用户的地理位置。所以在那篇文章中,他使用的是 System.Web。那么在 asp.net 中我应该使用什么来代替 System.Web?
-
使用
HttpClient或IHttpClientFactory代替WebRequest。此外,我在您的代码中看不到任何System.Web.UI内容。 -
你能用
HttpClient转换我的IPRequestHelper,因为我不知道如何使用它。我是 asp.net 核心的新手 -
查看说明here。应该在 ASP.NET Core 上工作。
标签: c# asp.net-core system.web