このSO投稿からの回答に基づいて、ルートとルートパラメータをハードコードする必要がないように少し調整しようとしていますが、代わりに(可能であれば)強く型付けされたコントローラーアクションメソッドを使用します:-
string path = RouteTable.Routes.GetVirtualPath(
new RequestContext(HttpContext,
RouteTable.Routes.GetRouteData(HttpContext)),
new RouteValueDictionary(
new
{
controller = "Foo",
action = "Bar"
})).VirtualPath;
MVC Futures 名前空間 (Microsoft.Web.MVC) には、ActionLink を強く型付けする機能があります。
強く型付けされた GetVirtualpath ???