Когда клиент не включает одно или несколько полей из вашей модели, это называется «занижение».В этом случае, если вы не отметили отсутствующие поля как обязательные (используя атрибут), для них будет установлено значение по умолчанию.
Таким образом, при условии, что вы можете установить «волшебное» значение по умолчанию для каждогополе (значение, которое не приходит от клиента), вы можете определить, какие из них были отправлены клиентом, а какие нет, и соответствующим образом изменить свою логику.Например:
class A {
string field1 = "nosave";
string field2 = "nosave";
int field3 = -1;
int field4 = -1;
bool field5;
}
public IActionResult foo(A request) {
if(request.A != "nosave") { saveField(request.A); }
...
}
Сложной частью будут поля типа Booleans, где никакие возможные значения не могут быть проигнорированы.Для этого вы, вероятно, могли бы использовать пустое поле.
В качестве альтернативы клиент может отправить, помимо полей, список полей, которые должны быть обновлены.