【问题标题】:MVC cant upload fileMVC无法上传文件
【发布时间】:2019-08-09 13:26:31
【问题描述】:

我对 .NET Core MVC 相当陌生,并尝试创建一个简单的应用程序,用户可以在其中上传文件并将其保存到主文件夹,目前我遵循了一个教程,该教程至少似乎是正确的方向。但是,当我单击提交按钮时,我的 post 方法没有被击中。有人对这是为什么有任何见解吗?

这是我的控制器代码:

 namespace GraduateOutcomesConverter.Controllers
{
public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult Privacy()
    {
        return View();
    }


    [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
    public IActionResult Error()
    {
        return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
    }

 [HttpPost("UploadFiles")]
    public async Task<IActionResult> FileUpload(List<IFormFile> files)
    {
        long size = files.Sum(f => f.Length);
        var filePaths = new List<string>();
        foreach (var formFile in files)
        {
            if(formFile.Length > 0)
            {
                var filePath = Path.GetTempFileName();
                filePaths.Add(filePath);

                using (var stream = new FileStream(filePath, FileMode.Create))
                {
                    await formFile.CopyToAsync(stream);
                }
            }
        }
        return Ok(new { count = files.Count, size, filePaths });
    }

我的观点

 @{
ViewData["Title"] = "Home Page";
 }

 <div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Please Upload An Excel File.</p>
<input type="file" name="datafile" style="margin-left: 10px; margin-top: 
 15px; vertical-align: top; font-size:18px; background-color: white; margin- 
left:160px; margin-top:15px; width:250px; height:40px /">
</div>

 <form method="post" enctype="multipart/form-data" asp- 
controller="UploadFiles" asp-action="FileUpload">
<div class="form-group">
<div class="col-md-10">
    <p>Please Upload An Excel File.</p>
    <input type="file" name="files" multiple />
</div>
 </div>
<div class="form-group">
    <div class="col-md-10">
        <input type="submit" value="Upload" />
    </div>
</div>
 </form>

任何帮助将不胜感激 谢谢

【问题讨论】:

  • &lt;form method="post" enctype="multipart/form-data" asp- controller="UploadFiles" asp-action="FileUpload"&gt; 控制器名称无效。你可能想把它改成Home
  • 非常感谢,我已经摆弄了一个小时试图让它响应
  • 很高兴它有帮助。将其发布为答案,以便您可以随意将其标记为答案 (=

标签: c# .net asp.net-mvc asp.net-core


【解决方案1】:

表单元素的给定控制器名称无效。您可能需要将其更改为 Home 您当前的代码

 <form method="post" enctype="multipart/form-data" asp- 
controller="UploadFiles" asp-action="FileUpload">

应该是的;

<form method="post" enctype="multipart/form-data" asp- 
controller="Home" asp-action="FileUpload">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多