Может быть более элегантное решение MVC / маршрутизации, но простой метод расширения должен помочь:
public static string TokenActionLink(this HtmlHelper html,
string linkText,
string actionName,
string controllerName,
int id,
int token)
{
var anchorFormat = "<a href=\"{0}\">{1}</a>";
var urlFormat = "{0}/{1}/{2}?token={3}";
return string.Format(anchorFormat, string.Format(urlFormat, controllerName, actionName, id, token.ToString()), linkText);
}
Использование
<%: Html.TokenActionLink("Show Me", "Detail", "Product", Model.Id, Model.Token) %>
Или, может быть, вы могли бы создать собственный RouteValueDictionary: и вызвать обычный ActionLink метод из своего собственного:
public static string TokenActionLink(this HtmlHelper html,
string linkText,
string actionName,
string controllerName,
int id,
int token)
{
var rvd = new RouteValueDictionary(ViewContext.RouteData.Values);
rvd["Token"] = token.ToString();
return Html.ActionLink(linkText, actionName, controllerName, id, rvd);
}