Поле файла MVC не проверяется правильно - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь создать рабочую страницу редактирования.Страница редактирования по умолчанию, которая получила поддержку моей модели, работала, но моему файловому полю с именем Image был назначен вход Byte [], что не очень хорошо.Я заменил его вводом файла и удалил некоторые поля, которые не нужно редактировать.Когда я редактирую все поля и пытаюсь его отредактировать, в поле «Изображение» отображается «Поле изображения обязательно».сообщение проверки, даже после того, как я выбрал .png файл для загрузки.

Мой файл Edit.cshtml (не полный, но у меня нет полей ввода для даты, AuthorUserName и других, что может быть проблемой ..)

<h4>Post</h4>
<hr />
<div class="row">
<div class="col-md-12">
    <form asp-action="Edit" enctype="multipart/form-data">
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <input type="hidden" asp-for="IDPost" />
        <div class="row">
            <div class="form-group col-md-4">
                <label asp-for="Title" class="control-label"></label>
                <input asp-for="Title" class="form-control" />
                <span asp-validation-for="Title" class="text-danger"></span>
            </div>
        </div>
        <div class="row">
            <div class="form-group col-md-4">
                <label asp-for="Image" class="control-label"></label>
                <input asp-for="Image" type="file" />
                <span asp-validation-for="Image" class="text-danger"></span>
            </div>
        </div>
       <div class="row">
            <div class="form-group col-md-4">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </div>
       //and so on

Моя правка POSTmethod

 [HttpPost]
 [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(int id,[Bind("IDPost,Title,Image,Content,IDUser,DateCreated")] Post post)
    {
        if (id != post.IDPost)
        {
            return NotFound();
        }

        if (ModelState.IsValid)
        {
            //do some stuff
        }
        return View(post);
    }

И модель для Post

public class Post
{
    [Key]
    [Required()]
    public int IDPost { get; set; }
    [Required()]
    public string Title { get; set; }
    [Required()]
    public byte[] Image { get; set; }
    [Required()]
    public string Image_Extension { get; set; }
    [Required()]
    public string Content { get; set; }

    [Required()]
    public string AuthorUserName { get; set; }

    [Required()]
    public DateTime DateCreated { get; set; }
}

EDIT: поле имеет значение Byte [], но сначала я получаю файл (изображение), а затем преобразую его в Byte [].

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