我想执行上传和从数据库。在MVC核心下载它的正常工作,但我无法MVC控制器马托转换成剃刀页面的处理方法。如何做到这一点。我会很高兴,如果有人helped.Following是我的应用程序的更多细节
MVC核心的控制器方法
[HttpPost]
public async Task<IActionResult> UploadFile(IFormFile file)
{
if (file == null || file.Length == 0)
return Content("file not selected");
var path = Path.Combine(
Directory.GetCurrentDirectory(), "wwwroot",
file.GetFilename());
using (var stream = new FileStream(path, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return RedirectToAction("Files");
}
public async Task<IActionResult> Download(string filename)
{
if (filename == null)
return Content("filename not present");
var path = Path.Combine(
Directory.GetCurrentDirectory(),
"wwwroot", filename);
var memory = new MemoryStream();
using (var stream = new FileStream(path, FileMode.Open))
{
await stream.CopyToAsync(memory);
}
memory.Position = 0;
return File(memory, GetContentType(path), Path.GetFileName(path));
}
尝试改变你的剃须刀本页按照以下步骤进行:
File
剃刀页中Pages
public class FileModel : PageModel
{
public void OnGet()
{
}
[BindProperty]
public IFormFile FormFile { get; set; }
[IgnoreAntiforgeryToken]
public async Task<IActionResult> OnPostUploadFileAsync()
{
return RedirectToPage("Index");
}
public async Task<IActionResult> OnGetDownloadAsync(string filename)
{
if (filename == null)
return Content("filename not present");
var path = Path.Combine(
Directory.GetCurrentDirectory(),
"wwwroot", filename);
var memory = new MemoryStream();
using (var stream = new FileStream(path, FileMode.Open))
{
await stream.CopyToAsync(memory);
}
memory.Position = 0;
return File(memory, "application/octet-stream", Path.GetFileName(path));
}
}
@page
@model TestRazor.Pages.FileModel
@{
ViewData["Title"] = "File";
}
<h2>File</h2>
<div class="row">
<div class="col-md-4">
<form method="post" asp-page-handler="UploadFile" enctype="multipart/form-data">
<div class="form-group">
<label asp-for="FormFile" class="control-label"></label>
<input asp-for="FormFile" type="file" class="form-control" style="height:auto" />
<span asp-validation-for="FormFile" class="text-danger"></span>
</div>
<input type="submit" value="Upload" class="btn btn-default" />
</form>
</div>
</div>
OnGetDownloadAsync
是https://localhost:44332/file?handler=download&filename=test.txt
https://localhost:44332/file
,然后点击上传按钮来上传文件有关剃刀页的详细信息,请参阅Upload files to a Razor Page in ASP.NET Core