Краткий ответ - да, вы можете. Причина, по которой я это знаю, заключается в том, что ActionLink
, о котором вы говорите (Futures), имеет перегрузку, которая принимает строго типизированный делегат Action
, который преобразует его в RouteValueDictionary
для RouteLink
. Я не уверен, что вы можете просто использовать ExpressionHelper
. Я думаю, что вы можете. Позвольте мне попытаться найти пример ...
РЕДАКТИРОВАТЬ Это может работать:
string path = RouteTable.Routes.GetVirtualPath(
new RequestContext(HttpContext,
RouteTable.Routes.GetRouteData(HttpContext)),
Microsoft.Web.Mvc.Internal.ExpressionHelper.GetRouteValuesFromExpression<YourController>(c=>c.YourAction())).VirtualPath;