私は現在、DropboxアカウントからファイルをダウンロードするMVC WEB Apiアプリケーションで単純なコントローラメソッドを作成しています。問題は、メソッドからファイルを返すことができないということです。「名前 'File'は現在のコンテキストに存在しません」と書かれていますが、ドキュメントではこのコンストラクタを呼び出すことができます。
コード:ASP.NET MVC名前 'File'は現在のコンテキストに存在しません
public async Task<FileResult> GetFile(string folder, string file)
{
using (var dbx = new DropboxClient("generated token key"))
{
using (var response = await dbx.Files.DownloadAsync(folder + "/" + file))
{
var result = await response.GetContentAsStringAsync();
return File(result, file);
}
}
}
コンプリートDropBoxController.cs
クラス:
using Dropbox.Api;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Mvc;
namespace TestDropBox.Controllers
{
public class DropBoxController : ApiController
{
// GET: api/DropBox
public async Task<IEnumerable<string>> Get()
{
List<string> AccountData= new List<string>();
using (var dbx = new DropboxClient("generated token"))
{
var full = await dbx.Users.GetCurrentAccountAsync();
Console.WriteLine("{0} - {1}", full.Name.DisplayName, full.Email);
AccountData.Add(full.Name.DisplayName);
AccountData.Add(full.Email);
}
return DatiAccount;
}
[System.Web.Http.HttpGet]
public async Task<FileResult> GetFile(string folder, string file)
{
using (var dbx = new DropboxClient("generated token"))
{
using (var response = await dbx.Files.DownloadAsync(folder + "/" + file))
{
var result = await response.GetContentAsStringAsync();
return new File(result, file);
}
}
}
// GET: api/DropBox/5
public string Get(int id)
{
return "value";
}
// POST: api/DropBox
public void Post([FromBody]string value)
{
}
// PUT: api/DropBox/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE: api/DropBox/5
public void Delete(int id)
{
}
}
}
どのように私はこの問題を解決するだろうか?ありがとうございました。
本当に必要な使用が宣言されていますか? –
私は現在System.Web.Mvcを使用しています – Gab
あなたはあなたのコントローラクラスをどのように宣言することができますか? – Shyju