#.net-core #model-binding
Вопрос:
У меня есть ViewModel
приложение .Net Core 5.0 MVC, которое выглядит примерно так:
public Class MyViewModel {
public string Property1
public string Property2
public Entity Entity1
}
public Entity : BaseEntity {
}
public abstract Class BaseEntity : IValidatableObject
{
public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
//code here
}
}
При выполнении HTTP-сообщения с MyViewModel .Net Core автоматически вызывается Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync
из — за MyViewModel's
ссылки на Entity
. Если я удалю свойство сущности, оно не будет вызываться BindModelAsync
.
В моем сценарии я не хочу MyViewModel
звонить BindModelAsync
, это просто неизбежно , исходя из того, как я реализовал свой код?
Вот подпись HTTP-сообщения:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Post(MyViewModel viewModel)
Этот метод еще даже не попал, потому что в нем говорится, что мой экземпляр ViewModel «недействителен».