Я работаю над страницей регистрации, на которой для пользователя загружено изображение. После отправки формы все остальное будет отправлено в базу данных, кроме изображения, возможно, я сделал некоторые ошибки в 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 может быть неправильным, пожалуйста, простите меня. Спасибо за помощь!