2010-10-11 2 views
0

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

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

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

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

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

Единственное, что вам нужно сделать, это превратить ваш IDictionary в RouteValueDictionary который снова довольно просто, как конструктор для РВД может принять IDictionary, который избавит вас от делать петлю Еогеасп в вашем примере.

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

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

+0

Как я задаю значения, если я получил их в Model.Routeparameters (.ParameterKey и .ParameterValue)? –

+0

Если ваше свойство Model.RouteParameters уже является документом RouteValueDictionary, вы можете просто передать его в Html.RouteLink: Html.RouteLink («текст ссылки», «имя маршрута», Model.RouteParameters) –