Если вы используете Url.Action, он не использует преимущества маршрутизации атрибутов, вам нужно будет следовать оригинальному методу маршрутизации, который заключается в использовании Action, Controller, area и params, чтобы получить метод расширения для произвести URL.
[RoutePrefix("widgets/download-functions")]
public class WidgetDownloadController : Controller
...
[Route("download/{publishedReportId}"), HttpGet]
public ActionResult Download(int publishedReportId)
Вы бы получили Url.Action, как:
console.log("@(Url.Action("Download","WidgetDownload", new { publishedReportId = 9999 }))");
Кроме того, это будет работать только для сценариев, которые обрабатываются механизмом бритвы, т.е. скрипты, которые написаны прямо в представлении.