Возвратите URL по имени и маршруту - PullRequest
0 голосов
/ 11 октября 2010

Я пытаюсь программно сгенерировать ссылку по имени и маршруту. Я храню маршруты и значения в базе данных.

Как настроить этого помощника, чтобы он работал?

public static string GenerateLink(this HtmlHelper helper, string routeName, Dictionary<string, string> parameters)
{
     // ??

    RouteValueDictionary rd = new RouteValueDictionary();

     foreach (var item in parameters)
     {
         rd.Add(item.Key, item.Value);
     }

     // string url = ??

    return url;
}

чтобы использовать его как:

<%= Html.GenerateLink(Model.SomeLinkName, Model.RouteName, ..?) %>

/ M

1 Ответ

1 голос
/ 11 октября 2010

На самом деле этот метод уже существует для вас.

Html.RouteLink(string LinkText, string routeName, RoutevalueDictionary routeValues)

Единственное, что вам нужно сделать, это превратить ваш IDictionary в RouteValueDictionary, который опять-таки довольно прост как конструктор дляRVD может взять IDictionary, который избавляет вас от выполнения цикла foreach в вашем примере.

Итак, в конечном итоге все, что вам нужно, это

Html.RouteLink(string LinkText, string routeName, new RoutevalueDictionary(parameters) )

...