带有NETCore.App的Microsoft WebHelpers(2.1)

时间:2018-11-14 20:18:40

标签: asp.net-core razor-pages

我正在尝试使以下代码正常工作,但是我仍然遇到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>

1 个答案:

答案 0 :(得分:1)

WebHelpers库与ASP.NET Core不兼容。它依赖于System.Web,而.NET Core的设计宗旨是远离System.Web。

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

就我个人而言,除非您希望允许用户向页面添加其他文件上传(在这种情况下您显然不知道),否则我永远不会理解FileUpload帮助程序的要点。 input type="file"更容易添加到页面。

在ASP.NET Core中上传文件与网页完全不同。以下是一些指导:https://www.learnrazorpages.com/razor-pages/forms/file-upload