IFormFile пусто ASP. NET Ядро. Я скопировал рабочий код, но реплицированный код не работает - PullRequest
0 голосов
/ 22 марта 2020

Я уверен, что кто-то сразу заметит ошибку. Когда пользователь публикует резюме, он отправляет 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". Я не знаю, почему я это сделал, потому что когда-то написал этот код go. Но это работает в другом представлении, IFormFile отправляется. Также я попытался включить баннер "asp -for =", и он не работал.

Моя модель 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; }
    }
}

enter image description here

1 Ответ

2 голосов
/ 22 марта 2020

Попробуйте добавить enctype="multipart/form-data" к вашей форме следующим образом: <form asp-route="criar_loja" enctype="multipart/form-data">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...