使用我的控制器,我可以将文件上传到某个路径。我试图弄清楚如何在我的视图中删除迭代文件。
控制器方法:
[Authorize(Roles = "Moderatorzy")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult DeleteFile(string file)
{
if (!System.IO.File.Exists(file))
{
return NotFound();
}
System.IO.File.Delete(file);
return View("Edit");
}
查看文件:
<form asp-action="Edit" method="post" enctype="multipart/form-data">
<input type="hidden" asp-for="ID" />
(...)
@if (Enumerable.Count(ViewBag.fileList) != 0)
{
<dir>Files to download:</dir>
{
foreach (var file in ViewBag.fileList)
{
<a class="down" href="Autobus/DeleteFile?file=@(ViewBag.fileDirectory + file)"><dir>@file<span>;</span></dir></a>
}
}
}
(...)
<div class="text-center">
<button class="btn btn-success" type="submit">Zapisz</button>
<a href="javascript:history.go(-1)" class="btn btn-primary">Powrót</a>
</div>
<div class="space"></div>
现在我有两个问题:
1)Autobus
是控制器名称。href="Autobus/DeleteFile?file=@(ViewBag.fileDirectory + file)"
给我路径:/Autobus/Autobus/DeleteFile(...)
而不是/Autobus/DeleteFile(...)
. 为什么?
2)手动键入后,Autobus
它不调用DeleteFile
方法。为什么?
完整生成的路由路径为:http://localhost:50686/Autobus/Autobus/DeleteFile?file=C:\Users\asus\Desktop\Praca%20IT\Programowanie\Projekty\DluzynaSzkola\ASP.NET%20Core%20-%20ostatni\Dluzyna_Szkola_2\BasicConfig\wwwroot/uploaded/bus/1.jpg
PS我猜这可能是路由有问题。