Загрузка изображений в базу данных на ASP. NET Core Razor Pages не работает - PullRequest
1 голос
/ 26 мая 2020

Я работаю над страницей регистрации, на которой для пользователя загружено изображение. После отправки формы все остальное будет отправлено в базу данных, кроме изображения, возможно, я сделал некоторые ошибки в html, но я новичок в этом, я искал, но не мог найти точное решение о том, как загрузить изображение в базу данных с помощью бритвенных страниц. Вот мой html файл

@page
@model LibMan.Pages.SignUpModel
@{
    ViewData["Title"] = "SignUp";
    Layout = "~/Pages/Shared/_Layout.cshtml";
}

<h1>SignUp</h1>

<div class="row">
    <div class="col-md-4">
        <form method="post">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="TblUser.FirstName" class="control-label"></label>
                <input asp-for="TblUser.FirstName" class="form-control" />
                <span asp-validation-for="TblUser.FirstName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="TblUser.LastName" class="control-label"></label>
                <input asp-for="TblUser.LastName" class="form-control" />
                <span asp-validation-for="TblUser.LastName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="TblUser.Email" class="control-label"></label>
                <input asp-for="TblUser.Email" class="form-control" />
                <span asp-validation-for="TblUser.Email" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="TblUser.Password" class="control-label"></label>
                <input asp-for="TblUser.Password" class="form-control" />
                <span asp-validation-for="TblUser.Password" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="TblUser.BirthDate" class="control-label"></label>
                <input asp-for="TblUser.BirthDate" class="form-control" placeholder="DD/MM/YYYY" />
                <span asp-validation-for="TblUser.BirthDate" class="text-danger"></span>
            </div>
            <div class="=" form-group>
                <label asp-for="TblUser.Photo">Upload Image:</label>
                <input asp-for="TblUser.Photo" class="form-control" /><br><br>
                <input type="submit" value="Upload Image" />
                <br><br>
            </div>
            <div class="form-group">
                <input type="submit" value="Sign Up" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>

<div>
    <a asp-page="Index">Back to List</a>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

В последнем div перед отправкой у меня есть кнопка загрузки изображения, которая появляется без проблем, но не работает.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using LibMan.Models;
using LibMan.Models.DB;

namespace LibMan.Pages
{
    public class SignUpModel : PageModel
    {
        private readonly LibMan.Models.DB.LibManContext _context;

        public SignUpModel(LibMan.Models.DB.LibManContext context)
        {
            _context = context;
        }
        public IActionResult OnGet()
        {
            return Page();
        }
        [BindProperty]
        public TblUser TblUser { get; set; }
        public async Task<IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return Page();
            }
            _context.TblUser.Add(TblUser);
            await _context.SaveChangesAsync();

            return RedirectToPage("./Index");
        }
    }
}

Как это исправить? Мой синтаксис html может быть неправильным, пожалуйста, простите меня. Спасибо за помощь!

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