ASP.NET Core 2 razor 页面中的文件上传

2024-01-09

我正在尝试在 asp.net core 2 razor 页面中进行简单的文件上传。我有下面的代码。请认识到它是不完整的。当我在 VS2017 中运行时,我检查我的 FileUpload 对象,不幸的是它为空。我希望它不是 null 之外的东西,我可以创建一个流来从中获取一些数据。然而,由于该对象为空,我怀疑我没有正确地将某些东西绑定在一起。任何想法表示赞赏。谢谢。

cs后面的代码:

public class PicturesModel : PageModel
{
    public PicturesModel()
    {

    }
    [Required]
    [Display(Name = "Picture")]
    [BindProperty]
    public IFormFile FileUpload { get; set; }

    public async Task OnGetAsync()
    {

    }

    public async Task<IActionResult> OnPostAsync()
    {
        //FileUpload is null
        return RedirectToPage("/Account/Pictures");
    }
}

前端cshtml文件;

<form method="post" enctype="multipart/form-data">
    <label asp-for="FileUpload"></label>
    <input type="file" asp-for="FileUpload" id="file" name="file" />
    <input type="submit" value="Upload" />
</form>

文件输入的属性名为FileUpload但你已经覆盖了name由 TagHelper 生成的属性并将其重命名为file与属性名称不匹配。

将视图代码更改为

<input type="file" asp-for="FileUpload" />

以便它生成正确的name属性(即name="FileUpload")。另请注意删除id="file"这意味着你<label>单击时不会将焦点设置到关联的控件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET Core 2 razor 页面中的文件上传 的相关文章

随机推荐