Среда моей разработки - ASP.NET CORE 8.0 RAZOR PAGES с EF CORE и SQL SERVER в Visual Studio 2022. код>. Событие может иметь eventtype .
Классы моей модели:
public class Event
{
public int Id { get; set; }
[DisplayName("Active")]
public required bool IsActive { get; set; }
public required string Title { get; set; }
public string? SubTitle { get; set; }
public required string Description { get; set; }
[DisplayName("Start Date")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateOnly StartDate { get; set; }
[DisplayName("End Date")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateOnly EndDate { get; set; }
[DisplayName("Start Time")]
[DisplayFormat(DataFormatString = "{0:hh:mm tt}", ApplyFormatInEditMode = true)]
public required TimeOnly StartTime { get; set; }
[DisplayName("End Time")]
[DisplayFormat(DataFormatString = "{0:hh:mm tt}", ApplyFormatInEditMode = true)]
public TimeOnly? EndTime { get; set; }
[DisplayName("Registration Ends")]
[DisplayFormat(DataFormatString = "{0:hh:mm tt}", ApplyFormatInEditMode = true)]
public required TimeOnly RegistrationEndTime { get; set; }
[DisplayName("Buy In")]
[DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = true)]
public decimal? BuyIn { get; set; }
[DisplayName("Chip Count")]
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public decimal? ChipCount { get; set; }
// New property for Blinds, in minutes
[DisplayName("Blinds (Minutes)")]
public int? Blinds { get; set; }
// Custom property to display Blind duration with "minutes" suffix
[NotMapped]
public string BlindDisplay => $"{Blinds} minutes";
public string? Image { get; set; }
//Navigation Properties
[ForeignKey("Event")]
public required int EventTypeId { get; set; }
[DisplayName("Event Type")]
public required EventType EventType { get; set; }
}
public class EventType
{
public int Id { get; set; }
public required string Description { get; set; }
[StringLength(7, MinimumLength = 7, ErrorMessage = "Color must be exactly 7 characters long.")]
[RegularExpression("^#[a-f0-9]{6}$", ErrorMessage = "Color must start with '#' and be followed by 6 lowercase hexadecimal characters.")]
[DisplayName("Hex Color")]
public required string Color { get; set; }
}
Мой код правильно заполняет selectlist с помощью eventtype (EventTypeSelectList).
проблема : метод onpost не выполняет проверку модели, когда EventType null. Вот метод onpost < /code>: < /p>
public async Task OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.Events.Add(Events);
await _context.SaveChangesAsync();
TempData["success"] = "Event Type database entry successfully created.";
return RedirectToPage("./Index");
}
Вот соответствующая часть create.csthml form
Submit
Подробнее здесь: https://stackoverflow.com/questions/794 ... oreign-key
Неверное состояние модели в онпосте с иностранным ключом ⇐ C#
Место общения программистов C#
-
Anonymous
1739767143
Anonymous
Среда моей разработки - ASP.NET CORE 8.0 RAZOR PAGES с EF CORE и SQL SERVER в Visual Studio 2022. код>. Событие может иметь eventtype .
Классы моей модели:
public class Event
{
public int Id { get; set; }
[DisplayName("Active")]
public required bool IsActive { get; set; }
public required string Title { get; set; }
public string? SubTitle { get; set; }
public required string Description { get; set; }
[DisplayName("Start Date")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateOnly StartDate { get; set; }
[DisplayName("End Date")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateOnly EndDate { get; set; }
[DisplayName("Start Time")]
[DisplayFormat(DataFormatString = "{0:hh:mm tt}", ApplyFormatInEditMode = true)]
public required TimeOnly StartTime { get; set; }
[DisplayName("End Time")]
[DisplayFormat(DataFormatString = "{0:hh:mm tt}", ApplyFormatInEditMode = true)]
public TimeOnly? EndTime { get; set; }
[DisplayName("Registration Ends")]
[DisplayFormat(DataFormatString = "{0:hh:mm tt}", ApplyFormatInEditMode = true)]
public required TimeOnly RegistrationEndTime { get; set; }
[DisplayName("Buy In")]
[DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = true)]
public decimal? BuyIn { get; set; }
[DisplayName("Chip Count")]
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public decimal? ChipCount { get; set; }
// New property for Blinds, in minutes
[DisplayName("Blinds (Minutes)")]
public int? Blinds { get; set; }
// Custom property to display Blind duration with "minutes" suffix
[NotMapped]
public string BlindDisplay => $"{Blinds} minutes";
public string? Image { get; set; }
//Navigation Properties
[ForeignKey("Event")]
public required int EventTypeId { get; set; }
[DisplayName("Event Type")]
public required EventType EventType { get; set; }
}
public class EventType
{
public int Id { get; set; }
public required string Description { get; set; }
[StringLength(7, MinimumLength = 7, ErrorMessage = "Color must be exactly 7 characters long.")]
[RegularExpression("^#[a-f0-9]{6}$", ErrorMessage = "Color must start with '#' and be followed by 6 lowercase hexadecimal characters.")]
[DisplayName("Hex Color")]
public required string Color { get; set; }
}
Мой код правильно заполняет selectlist с помощью eventtype (EventTypeSelectList).
[b] проблема [/b]: метод onpost не выполняет проверку модели, когда EventType null. Вот метод onpost < /code>: < /p>
public async Task OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.Events.Add(Events);
await _context.SaveChangesAsync();
TempData["success"] = "Event Type database entry successfully created.";
return RedirectToPage("./Index");
}
Вот соответствующая часть create.csthml form
Submit
Подробнее здесь: [url]https://stackoverflow.com/questions/79444298/invalid-model-state-in-onpost-with-foreign-key[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия