It seems like the view and the tables have different owners. If that is the case, the users need to have permission to access the underlying tables.
On the other hand, if the view and the tables have the same owner, SQL Server employs something that is known as ownership chaining. In this case, SQL Server does not perform any permission check at all on the objects accessed by the view. The assumption is that the owner of has made a decision of what to expose of the underlying tables.
No such assumption can be made if the owners are different, because if Alice defines a view over Bob's tables, Bob may not agree with what Alice expose to other users.
Very commonly, all objects in a database are owned by dbo, but it seems that you have for some reason decided not to adhere to this pattern.