Моей среда Dev является страница ASP.NET Core Razor на .net 8, с EF Core и MS SQL Server в Visual Studio 2022. < /p>
Я предоставляю конечному пользователю файл Форма загрузки (create.cshtml) для добавления изображений в карусель начальной загрузки. /каталог изображений в моем решении. Эта функция работает правильно. < /P>
Соответствующие данные, связанные с изображением, записываются в базу данных. Эта функциональность не работает. < /P>
Проблема: когда код в файле Create.cshtml.cs достигает строки if (! Modelstate.isvalid). предусмотрено в окне наблюдения: «имя файла, subkey = имя файла, key = имя файла, valyationstate = неверно», причем значение является нулевым. < /p>
Асвязанный класс: < /p>
public class CarouselItem
{
public int Id { get; set; }
public required string Description { get; set; }
[DisplayName("File Name (GUID)")]
public required string FileName { get; set; }
[DisplayName("Alt File Name")]
public required string AltFileName { get; set; }
[DisplayName("Display Start Date")]
public required DateOnly DisplayStartDate { get; set; }
[DisplayName("Display Stop Date")]
public required DateOnly DisplayStopDate { get; set; }
}
< /code>
create.cshtml.cs Файл: < /p>
public class CreateModel : PageModel
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ApplicationDbContext _context;
public CreateModel(IWebHostEnvironment webHostEnvironment, ApplicationDbContext context)
{
_webHostEnvironment = webHostEnvironment;
_context = context;
}
[BindProperty]
public CarouselItem CarouselItem { get; set; }
[BindProperty]
public IFormFile Image { get; set; }
public void OnGet()
{
}
public async Task OnPostAsync()
{
if (Image != null)
{
var fileExtension = Path.GetExtension(Image.FileName);
if (fileExtension.ToLower() == ".jpg")
{
var newFileName = $"{Guid.NewGuid()}{fileExtension}";
var filePath = Path.Combine(_webHostEnvironment.WebRootPath, "images", newFileName);
using (var fileStream = new FileStream(filePath, FileMode.Create))
{
await Image.CopyToAsync(fileStream);
}
CarouselItem.FileName = newFileName;
CarouselItem.AltFileName = Image.FileName;
}
else
{
ModelState.AddModelError("Image", "Only .jpg files are allowed.");
}
}
if (string.IsNullOrEmpty(CarouselItem.FileName))
{
ModelState.AddModelError("CarouselItem.FileName", "The File Name field is required.");
}
if (!ModelState.IsValid)
{
return Page();
}
_context.CarouselItems.Add(CarouselItem);
await _context.SaveChangesAsync();
return RedirectToPage("/Admin/Carousel/Index");
}
}
< /code>
create.cshtml файл: < /p>
Create Carousel Items
Description
Alt File Name
Display Start Date
Display Stop Date
File
Create
@section Scripts {
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... azor-pages
Как разрешить неверное состояние модели при загрузке изображения на страницы бритвы? ⇐ C#
Место общения программистов C#
1738034047
Anonymous
Моей среда Dev является страница ASP.NET Core Razor на .net 8, с EF Core и MS SQL Server в Visual Studio 2022. < /p>
Я предоставляю конечному пользователю файл Форма загрузки (create.cshtml) для добавления изображений в карусель начальной загрузки. /каталог изображений в моем решении. Эта функция работает правильно. < /P>
Соответствующие данные, связанные с изображением, записываются в базу данных. Эта функциональность не работает. < /P>
Проблема: когда код в файле Create.cshtml.cs достигает строки if (! Modelstate.isvalid). предусмотрено в окне наблюдения: «имя файла, subkey = имя файла, key = имя файла, valyationstate = неверно», причем значение является нулевым. < /p>
Асвязанный класс: < /p>
public class CarouselItem
{
public int Id { get; set; }
public required string Description { get; set; }
[DisplayName("File Name (GUID)")]
public required string FileName { get; set; }
[DisplayName("Alt File Name")]
public required string AltFileName { get; set; }
[DisplayName("Display Start Date")]
public required DateOnly DisplayStartDate { get; set; }
[DisplayName("Display Stop Date")]
public required DateOnly DisplayStopDate { get; set; }
}
< /code>
create.cshtml.cs Файл: < /p>
public class CreateModel : PageModel
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ApplicationDbContext _context;
public CreateModel(IWebHostEnvironment webHostEnvironment, ApplicationDbContext context)
{
_webHostEnvironment = webHostEnvironment;
_context = context;
}
[BindProperty]
public CarouselItem CarouselItem { get; set; }
[BindProperty]
public IFormFile Image { get; set; }
public void OnGet()
{
}
public async Task OnPostAsync()
{
if (Image != null)
{
var fileExtension = Path.GetExtension(Image.FileName);
if (fileExtension.ToLower() == ".jpg")
{
var newFileName = $"{Guid.NewGuid()}{fileExtension}";
var filePath = Path.Combine(_webHostEnvironment.WebRootPath, "images", newFileName);
using (var fileStream = new FileStream(filePath, FileMode.Create))
{
await Image.CopyToAsync(fileStream);
}
CarouselItem.FileName = newFileName;
CarouselItem.AltFileName = Image.FileName;
}
else
{
ModelState.AddModelError("Image", "Only .jpg files are allowed.");
}
}
if (string.IsNullOrEmpty(CarouselItem.FileName))
{
ModelState.AddModelError("CarouselItem.FileName", "The File Name field is required.");
}
if (!ModelState.IsValid)
{
return Page();
}
_context.CarouselItems.Add(CarouselItem);
await _context.SaveChangesAsync();
return RedirectToPage("/Admin/Carousel/Index");
}
}
< /code>
create.cshtml файл: < /p>
Create Carousel Items
Description
Alt File Name
Display Start Date
Display Stop Date
File
Create
@section Scripts {
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79392401/how-to-resolve-an-invalid-modelstate-when-uploading-an-image-in-razor-pages[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия