我正在为HtmlHelper类添加一些功能。基本上我想根据用户权限自动禁用网页上的链接。
所以我有这个功能:
public static string ActionLinkWithPrivileges(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues)
{
return LinkExtensions.ActionLink(htmlHelper, linkText, actionName, routeValues);
}
这里的问题是routeValues-argument。它通常作为匿名类型创建,所以我不知道将它投射到什么。这个匿名类型通常有一个名为“id”的属性,但只是编写routeValue.id会给我一个编译器错误。
任何帮助将不胜感激!
答案 0 :(得分:0)
实现接口或使用反射来获取PropertyInfo,然后通过属性集合进行迭代以获得正确的接口。
你当然需要告诉方法要获取的属性的名称,除非它是特定类型。
答案 1 :(得分:0)
这应该有效:
RouteValueDictionary routeVals = new RouteValueDictionary(routeValues);
var value = routeVals["key"];
//RouteValueDictionary is under System.Web.Routing