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