具有 NETCore.App 的 Microsoft WebHelpers (2.1)

Microsoft WebHelpers with NETCore.App (2.1)

我试图让下面的代码工作,但我一直遇到 Microsoft.Web.Helpers v 3.2.6 和我当前的 NETCore 2.1 SDK 包的兼容性问题。此外,对于我的生活,我无法识别最简单的 IsPost 和 Request 调用。我确定这是一个明显的修复,但我找不到它!

提前感谢任何方向...

@using Microsoft.Web.Helpers;
@{
    var fileName = "";
    if (IsPost) {
        var fileSavePath = "";
        var uploadedFile = Request.Files[0];
        fileName = Path.GetFileName(uploadedFile.FileName);
        fileSavePath = Server.MapPath("~/App_Data/UploadedFiles/" +
          fileName);
        uploadedFile.SaveAs(fileSavePath);
    }
}
<!DOCTYPE html>
<html>
    <head>
    <title>FileUpload - Single-File Example</title>
    </head>
    <body>
    <h1>FileUpload - Single-File Example</h1>
    @FileUpload.GetHtml(
        initialNumberOfFiles:1,
        allowMoreFilesToBeAdded:false,
        includeFormTag:true,
        uploadText:"Upload")
    @if (IsPost) {
        <span>File uploaded!</span><br/>
    }
    </body>
</html>

WebHelpers 库与 ASP.NET 核心不兼容。它依赖于 System.Web,.NET Core 被设计为远离它。

IsPost 块的替换是 handler method。按照惯例,如果用于请求页面的方法是 POST(这是 IsPost 属性 用于检查的方法),将执行名为 OnPost 的处理程序方法。

就我个人而言,我一直不明白 FileUpload 助手的意义,除非您想让用户向页面添加额外的文件上传(在这种情况下您显然不这样做)。 input type="file" 更容易添加到页面。

ASP.NETCore 中的文件上传与网页完全不同。这里有一些指导:https://www.learnrazorpages.com/razor-pages/forms/file-upload