c# - IFormFile 为空 ASP.NET Core。我复制了一个工作代码,但复制的代码不起作用
问题描述
我相信有人会立即发现错误。当用户发布资源时,它会发送一个 IFormFile。我创建了另一个也需要 IFormFile 的资源。我复制了代码检查了所有内容,但我的 IFormFile 为空。
@model Loja
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
<div class="row">
<div class="col-md-5">
<form asp-route="criar_loja">
<div>
<label>E-Mail</label>
<input asp-for="EMail" class="form-control" />
<span asp-validation-for="EMail"></span>
</div>
<div>
<label>Confirmação de E-Mail</label>
<input asp-for="ConfirmacaoEMail" class="form-control" />
<span asp-validation-for="ConfirmacaoEMail"></span>
</div>
<div>
<input name="Banner" type="file" />
</div>
<div>
<label>Senha</label>
<input asp-for="Senha" />
</div>
<div>
<label>Confirmação de Senha</label>
<input asp-for="ConfirmacaoSenha" />
</div>
<div>
<button class="btn btn-primary" type="submit">cadastrar minha loja</button>
</div>
</form>
</div>
<div class="col-md-7">
</div>
</div>
我正在使用类型化视图,但该文件没有“asp-for”属性。我不知道我为什么这样做,因为我前段时间写了这段代码。但这在另一个视图中有效,正在发送 IFormFile。此外,我尝试包含“asp-for="Banner",但没有成功。
我的模型 Loja:
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
namespace Veiculos.Modelos
{
[Table("loja")]
public class Loja
{
[Key]
[Column("id")]
public int Id { get; set; }
[Column("tipo_estabelecimento")]
[Required(ErrorMessage = "Tipo de Estabelecimento é obrigatório.")]
public int TipoEstabelecimento { get; set; }
[Column("nome_fantasia")]
[Required(ErrorMessage = "Nome Fantasia é obrigatório.")]
public string NomeFantasia { get; set; }
[Column("razao_social")]
[Required(ErrorMessage = "Razão Social é obrigatório.")]
public string RazaoSocial { get; set; }
[Column("cnpj")]
[Required(ErrorMessage = "CNPJ é obrigatório.")]
public string CNPJ { get; set; }
[Column("email")]
[Required(ErrorMessage = "Email é obrigatório.")]
public string EMail { get; set; }
[Column("telefone_1")]
public int Telefone1 { get; set; }
[Column("telefone_2")]
public int Telefone2 { get; set; }
[Column("celular_1")]
public int Celular1 { get; set; }
[Column("celular_2")]
public int Celular2 { get; set; }
[NotMapped]
[Required(ErrorMessage = "Confirmação de EMail é obrigatório.")]
public string ConfirmacaoEMail { get; set; }
[Column("senha")]
[Required(ErrorMessage = "Senha é obrigatório.")]
[MinLength(4, ErrorMessage = "A senha deve ter pelo menos 4 caracteres.")]
[MaxLength(15, ErrorMessage = "A senha deve ter no máximo 15 caracteres.")]
public string Senha { get; set; }
[NotMapped]
[Required(ErrorMessage = "Confirmação de Senha é obrigatório.")]
public string ConfirmacaoSenha { get; set; }
[ForeignKey("IdAnunciante")]
public virtual List<Anuncio> Anuncios { get; set; } = new List<Anuncio>();
[NotMapped]
public IFormFile Banner { get; set; }
}
}
解决方案
尝试enctype="multipart/form-data"
像这样添加到您的表单中:<form asp-route="criar_loja" enctype="multipart/form-data">
推荐阅读
- c++ - 什么是 consteval?
- pagespeed - Google PageSpeed Insights 一切错误
- cassandra - 创建键空间时 Cassandra 中的复制因子
- flowtype - 使用 immutablejs 记录并在其中调用更新时无法解决流注释错误
- algorithm - 带有 if 语句的递归函数
- python - ImportError: uncompyle2 即使它已安装
- javascript - 遍历javascript中的数组
- mysql - 将 ext3 存储在 sql 数据库中
- c - 从套接字读取然后分割输入字符串在 C 中的行为不正常
- matlab - 如何减少曲面图中显示的网格线数量?