hide parameters passing to controller in address bar (URL rewrite or something else)
You could use POST instead of GET. So you could replace the link with a form containing hidden fields for the parameters that you don't want to appear in the query string:
@using (Html.BeginForm("EventOverview", "BaseEvent", new { id = eventInfo.Key.OID, type = eventInfo.Key.XPObjectType.TypeName.GetShortTypeName() }, FormMethod.Post, null))
{
@Html.Hidden("activeTab", "#scheduleLink")
@Html.Hidden("session", eventInfo.Key.EventSchedules[0].SessionId)
@Html.Hidden("hall", eventInfo.Key.EventSchedules[0].HallId)
@Html.Hidden("client", eventInfo.Key.EventSchedules[0].BasePlace.PremieraClientId)
<button type="submit">Make</button>
}