首页 > 解决方案 > Visual Studio调试在mvc中上传文件时立即停止?

问题描述

所以我正在尝试使用 Visual Studio 2019 Enterprise 进入 .NET Core MVC。

我尝试从 Microsoft 自己的文档中遵循一个相当简单的示例。设置代码后,我有了他们给你的 MVC 模板项目。因此,在“关于”页面上,我使用AboutController.csMicrosoft 网站上的方法创建了以下控制器类:

[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files)
{
    long size = files.Sum(f => f.Length);
    string filePath = Path.GetTempFileName();

    if (files.Count > 0)
    {
        IFormFile file = files[0];
        if (file.Length > 0)
        {
            using (FileStream stream = new FileStream(filePath, FileMode.Create))
            {
                await file.CopyToAsync(stream);
            }
        }
    }

    return View();
}

唯一的“大”区别是我返回视图,而不是“确定”,因为我对此并不真正感兴趣。我想修改我正在查看的视图,而不是转到一个全新的视图(也许我误解了 MVC 的工作原理?)。

现在我的 HTML 看起来像这样:

<form method="post" enctype="multipart/form-data" asp-controller="About" asp-action="Post">
    <div class="form-group">
        <div class="col-md-10">
            <p>Upload one image using this form:</p>
            <input type="file" name="files">
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-10">
            <input type="submit" value="Upload">
        </div>
    </div>
</form>

这会生成表单,如之前链接的文档中所示。当我单击“浏览”按钮查找图片时,它工作正常,当我单击“打开”以便上传它时,Visual Studio 调试器立即停止运行。我能看到的任何地方都没有错误。

知道是什么导致了这种行为吗?

更新 1

看来只是调用 return View(); 表现出相同的行为,Nuget 说它是 AspNetCore.Mvc 2.1.1

更新 2

事实证明,调试器在这个特定实例中无法使用名为“Brave”的浏览器,这是我使用的铬浏览器(如果忘记提及)

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

解决方案


这种行为具体归因于浏览器问题,而不是一般的 Visual Studio。根据这篇文章和这篇文章,在这种情况下使用 Brave 和 Yandex 等浏览器时,通常会观察到这种行为。有时甚至 Chrome 也会显示这种行为,但并不一致(至少这是我观察到的)。

一个可能的解决方案是更改您的浏览器类型以使用理想的浏览器,例如 Chrome、Firefox 或 Edge。

Brave正如使用浏览器的用户的评论中指出的那样:

关闭(向下)防护罩可停止崩溃。您可以通过单击 URL 右侧的盾牌图标来执行此操作。


推荐阅读