找不到 ApiController

Shi*_*Tio 5 c# web-services xamarin xamarin.forms visual-studio-2017

基于此视频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";
    }
}
Run Code Online (Sandbox Code Playgroud)

}

任何人都可以分享我的想法吗?

Luk*_*uke 7

您的项目中缺少这些库的引用。根据svdoever,Microsoft.AspNet.WebApi您可以通过 NuGet 添加包来解决此问题。有关如何使用 NuGet 的说明,请单击此处


EvZ*_*EvZ 0

您的问题与 Xamarin.Forms 无关,而是与 WEB.API 有关。您的 Xamarin.Forms 项目不能也不应该包含任何 WEB.Api 控制器。您的服务器端代码应该位于单独的项目中。最简单的方法是使用特定模板创建一个单独的项目。

幸运的是,微软有一个非常容易遵循的指南:
https ://learn.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-网络API

不过,我建议您改用 Asp.NET Core: https:
//learn.microsoft.com/en-us/aspnet/core/tutorials/first-web-api