Это связано с тем, что MVC ожидает объект, из которого можно извлечь значения для привязки к параметрам действия. Другими словами, вы могли бы сделать:
return RedirectToAction("Details", restaurant);
Mvc будет сканировать ваш объект на предмет свойств, которые соответствуют имени и типу аргументов вашего действия и поэтому должны связываться со свойством ресторана "Id". Однако, если вы просто передадите идентификатор ресторана, MVC будет сканировать тип того, каким является свойство идентификатора вашего ресторана.
Надеюсь, это поможет. Если да, отметьте это как ответ;)