根据此视频https://www.youtube.com/watch?v=IVvJX4CoLUY我已使用System.Web添加 ;使用System.Web.Http; ,但我仍然得到apicontroller无法找到的错误状态,等等,下面的图片是我面临的错误:
下面是我的代码:
using System;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Collections.Generic;
namespace UploadToServer.Server.Controllers
{
public class UploadsController : ApiController
{
[Route("api/Files/Upload")]
public async Task<string> Post()
{
try
{
var httpRequest = HttpContext.Current.Request;
if (httpRequest.Files.Count > 0)
{
foreach (string file in httpRequest.Files)
{
var postedFile = httpRequest.Files[file];
var fileName = postedFile.FileName.Split('\\').LastOrDefault().Split('/').LastOrDefault();
var filePath = HttpContext.Current.Server.MapPath("~/Uploads/" + fileName);
postedFile.SaveAs(filePath);
return "/Uploads/" + fileName;
}
}
}
catch (Exception exception)
{
return exception.Message;
}
return "no files";
}
}
}
任何人都可以分享我的想法?
答案 0 :(得分:0)
您的问题与Xamarin.Forms无关,但与WEB.API无关。您的Xamarin.Forms项目不能也不应该包含任何WEB.Api控制器。您的服务器端代码应该在一个单独的项目中。最简单的方法是使用特定模板创建一个单独的项目。
幸运的是,Microsoft有一个非常容易理解的指南:
https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
但是我建议你改用Asp.NET Core:
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api
答案 1 :(得分:0)
您收到此错误,因为未安装运行API所需的软件包。 您必须手动从nuget.org下载此软件包。
遵循以下步骤-
可以通过右键单击您的解决方案文件->管理Nuget程序包来完成相同的操作。 在Package Source中选择Nuget并还原。
所需的软件包将从nuget.org下载