#validation #asp.net-core #entity-framework-core #razor-pages #entities
#валидация #asp.net-core #сущность-структура-ядро #бритва-страницы #сущности
Вопрос:
Это свойства для проверки. (Код из моего cshtml.cs (Razor))
[BindProperty]
public TMedProductStorageLocation TMedProductStorageLocation { get; set; }
[BindProperty]
public IList<TStorageLocation> TStorageLocations { get; set; }
[BindProperty]
public int SelectedStorageLocationId { get; set; }
[BindProperty]
public TMedProduct SelectedProduct { get; set; }
[BindProperty]
public int RelocateAmount { get; set; }
Это те свойства, которые я хочу проверить. Но это также подтверждает:
public class TSubstanceGroup
{
public TSubstanceGroup()
{
TMedProducts = new HashSet<TMedProduct>();
}
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Geben Sie eine Bezeichnung ein.")]
public string Name { get; set; }
public ICollection<TMedProduct> TMedProducts { get; set; }
}
потому что это таблица, связанная с TMedProduct .
Как я могу избежать проверки для связанных таблиц?
Комментарии:
1. Не могли бы вы, пожалуйста, поделиться своим интерфейсом razor pages?
Ответ №1:
Не уверен, каков ваш дизайн razor pages, но вам нужно знать, что ModelState будет проверять все модели, которые вы определяете в серверной части razor pages, не из-за того, что у вас есть связь между моделями:
public class PrivacyModel : PageModel
{
[BindProperty]
public TSubstanceGroup TSubstanceGroup { get; set; }
[BindProperty]
public TMedProduct SelectedProduct { get; set; }
[BindProperty]
public TMedProductStorageLocation TMedProductStorageLocation { get; set; }
[BindProperty]
public IList<TStorageLocation> TStorageLocations { get; set; }
[BindProperty]
public int SelectedStorageLocationId { get; set; }
[BindProperty]
public int RelocateAmount { get; set; }
public IActionResult OnPost()
{
//...
}
public void OnGet()
{
//..
}
}
Чтобы избежать проверки для связанных таблиц, вы можете удалить проверку с помощью ключа:
public IActionResult OnPost()
{
ModelState.Remove("KeyName");
if(ModelState.IsValid)
{
//...
}
return Page();
}
Комментарии:
1. Эй, спасибо за этот ответ!! Теперь я знаю, почему Modelstate был недействительным и как я могу этого избежать.