我正在尝试在 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(使用前将#替换为@)