コントローラーを使用すると、ファイルを特定のパスにアップロードできます。ビューで反復ファイルを削除する方法を見つけようとしています。
コントローラーの方法:
[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>
現在、私は2つの問題を抱えています:
1)Autobus
はコントローラ名です。の代わりにhref="Autobus/DeleteFile?file=@(ViewBag.fileDirectory + file)"
パス: を教えてくれます。なんで?/Autobus/Autobus/DeleteFile(...)
/Autobus/DeleteFile(...)
2) 手動で 1 つだけ入力した後、メソッド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ルーティングに問題がある可能性があると推測しています。