Я вынужден не согласиться с Ником в отношении значений, заканчивающихся в строке URL. На самом деле, нет никакой разницы. Попытайся! Параметры строки запроса могут предоставлять значения модели любым методом.
Другое различие, которое, возможно, является существенным, заключается в том, что при передаче идентификатора и имени в качестве аргументов это единственные два поля, которые могут быть обновлены. При передаче Person в качестве аргумента потенциально другие поля могут быть обновлены. Это может или не может быть то, что вы хотите. Но UpdateModel примет белый список свойств, которые вы хотели бы обновить (и аналогично для привязки экземпляра Person в аргументе), поэтому , если вы помните, что нужно включить белый список , реального Разница здесь.
Для меня самая большая разница между двумя вариантами, которые вы показываете, состоит в том, кто создает экземпляр Person. Когда вы передаете ID и имя в качестве аргументов, это всегда будет ваш код контроллера, который создает экземпляр Person. Когда вы передаете Person в качестве аргумента, он всегда будет связующим звеном модели, который создает экземпляр Person. Это может быть важно, если вместо создания нового экземпляра Person вы захотите материализовать существующий экземпляр из репозитория.