我在Visual Studio 2015中使用ASP.NET 5 RC.
我定义了一个ViewModel:
public class TeamVM
{
public IFormFile UploadedLogo { get; set; }
}
和一个控制器:
[HttpPost]
public IActionResult Create(TeamVM vm)
{
vm.UploadedLogo.SaveAs("filename.txt"); // Problem here - There is no SaveAs method
return View();
}
问题是intellisense显示没有SaveAs()方法.我发现here这个接口实际上没有SaveAs()方法.
另外,我意识到,如果我将IFormFile更改为ICollection< IFormFile>并循环,IFormFile实例的集合将定义SaveAs()方法.
在我的情况下,我想使用IFormFile而不是ICollection< IFormFile>.
如何使用IFormFile将文件保存到系统的正确方法?
解决方法:
我按照@garethb here建议的链接使用了建议的扩展方法.有用!
ASP.NET RC1的解决方案:
要包含的命名空间
using Microsoft.AspNet.Http;
控制器动作
[HttpPost]
public IActionResult Create(TeamVM vm)
{
FormFileExtensions.SaveAs(vm.UploadedLogo, "C:\pathTofile");
return View();
}
这个答案归功于@garethb.
ASP.NET RC2的解决方案:
要包含的命名空间
using Microsoft.AspNetCore.Http;
using System.IO;
控制器动作
[HttpPost]
public IActionResult Create(TeamVM vm)
{
// Make sure the path to the file exists
vm.UploadedLogo.CopyTo(new FileStream("C:\pathTofile", FileMode.Create));
return View();
}
标签:c,asp-net,asp-net-mvc,visual-studio-2015
来源: https://codeday.me/bug/20190608/1200384.html