Вы разрушаете ТВЕРДЫЕ здесь.Вашей модели неуместно знать о HttpContext
или о том, как извлечь удаленный IP-адрес из этого.Логика, которую вы хотите инкапсулировать в вашей модели, просто нуждается в IP-адресе, поэтому , что - это то, что вы должны указать.Это может быть предоставлено либо в конструкторе класса вашей модели, либо просто в качестве параметра для конкретного метода (ов), который должен его использовать.Например, создайте метод, подобный следующему:
public void GeolocateByIP(string ip)
{
// do geolocation
}
В своем действии контроллера вы просто делаете что-то вроде:
model.GeolocateByIP(HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString());