Я пытаюсь создать обновляемую страницу событий для веб-сайта. Событие может иметь или не иметь изображение.
В этой модели я просто использовал bool с именем HasImage - если это так, то на странице дисплея будет отображаться изображение с именем [EventID] .jpg
Я подумал, что это будет самый простой способ сделать это. Я добавил код для загрузки изображения, и изображения загружаются правильно, но я не могу понять, как использовать существование изображения в форме создания для правильной установки HasImage.
Это упрощенная версия кода ...
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("ID,Date,Details,HasImage")] Events events, IFormFile file)
{
if (ModelState.IsValid)
{
string hasImage = file.Length > 0 ? "False" : "True";
ModelState.SetModelValue("events.HasImage", new ValueProviderResult(hasImage, CultureInfo.InvariantCulture));
// also tried but failed: events.HasImage=hasImage (where hasImage was a bool)
_context.Add(events);
await _context.SaveChangesAsync();
int NewID = cH_Events.ID;
var fileName = NewID + ".jpg";
if (file.Length > 0)
{
[upload stuff here]
}
return RedirectToAction(nameof(Index));
}
return View(Events);
}
Примечание. HasImage не отображается в форме. Это не работает, независимо от того, включаю ли я это в список Bind. Я предполагаю, что это лучший способ сделать это. Альтернативой может быть создание скрытой переменной формы и использование JavaScript.