Я хочу создать простое расширение HtmlHelper.ActionLink
, которое добавляет значение в словарь значений маршрута. Параметры будут идентичны HtmlHelper.ActionLink
, то есть:
public static MvcHtmlString FooableActionLink(
this HtmlHelper html,
string linkText,
string actionName,
string controllerName,
object routeValues,
object htmlAttributes)
{
// Add a value to routeValues (based on Session, current Request Url, etc.)
// object newRouteValues = AddStuffTo(routeValues);
// Call the default implementation.
return html.ActionLink(
linkText,
actionName,
controllerName,
newRouteValues,
htmlAttributes);
}
Логика того, что я добавляю в routeValues
, довольно многословна, поэтому я хочу поместить ее в метод расширения помощник вместо того, чтобы повторять его в каждом представлении.
У меня есть решение, которое, кажется, работает (опубликовано как ответ ниже), но:
Пожалуйста, опубликуйте любые предложения по улучшению или лучшим решениям.