【发布时间】:2019-09-20 07:26:07
【问题描述】:
所以我正在尝试使用 Visual Studio 2019 Enterprise 进入 .NET Core MVC。
我试图从微软自己的documentation 中遵循一个相当简单的例子。设置代码后,我有了他们给你的 MVC 模板项目。所以在“关于”页面上,我有以下控制器类AboutController.cs,方法是在微软网站上找到:
[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”的浏览器,这是我使用的铬浏览器(如果忘记提及)
【问题讨论】:
-
如果方法中只有
return View();,没有其他内容怎么办。它有什么作用?添加正在使用的 ASP.NET Core 版本可能也很有趣。 -
使用 Visual Studio 在调试时自行设置的 IIS Express。我应该在事件查看器中具体查看哪里?
-
刚刚在 Microsoft 尝试了代码,您的代码也一样,都按预期工作。尝试清空您的临时文件夹然后上传
-
我认为这是这里提到的浏览器问题:developercommunity.visualstudio.com/content/problem/261622/… 和 developercommunity.visualstudio.com/content/problem/556910/…。您是否尝试过使用其他浏览器查看是否也出现这种行为?
-
@RahulSharma 我并没有真正考虑过尝试其他浏览器。这是我的错。但它在边缘工作,所以这显然是一个浏览器问题。谢谢你。一旦它用完,你可以让它成为获得赏金的答案:) 我使用的是 Brave。
标签: c# asp.net-mvc asp.net-core