2010-10-11 21 views
0

我試圖通過routename和routevalues以編程方式生成一個鏈接。我將路線和值存儲在數據庫中。通過routename和routevalues返回url

我該如何調整這個助手才能使它工作?

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這又是作爲構造的RVD可以採取一個IDictionary這樣您就在你的例子做foreach循環非常簡單。

所以最後你需要的是

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

+0

我應如何分配值,如果我在Model.Routeparameters(.ParameterKey和.ParameterValue)得到了他們? – 2010-10-11 11:00:37

+0

如果您的Model.RouteParameters屬性已經是RouteValueDictionary,那麼您可以將它傳遞給Html.RouteLink:Html.RouteLink(「link text」,「routeName」,Model.RouteParameters) – 2010-10-11 13:11:29