There are three ways to get to Tangier from Asilah and the best way is to ride a grand taxi.
1) by train, 16 Dhs/seat
The train is clean but you can expect it to come 40 minutes behind schedule.
Asilah train station is away from the town. You need to walk half an hour to get there or take a petit taxi(10 Dhs). The road condition is not bad but the section near the train station can be dusty due to some construction work going on as of November 2016.
Tangier Ville train station is about 3km from Medina. A petit taxi will cost you at least 15 Dhs.