我使用匿名对象将Html属性传递给一些帮助方法。
如果使用者没有添加ID属性,那么我想在我的助手方法中添加它。
如何向该匿名对象添加属性?
最佳答案
如果您尝试扩展此方法:
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues);
尽管我确定Khaja的Object扩展会起作用,但是通过创建RouteValueDictionary并传入routeValues对象,从Context中添加其他参数,然后使用ActionLink重载(使用RouteValueDictionary而不是对象)来返回,可能会获得更好的性能:
这应该可以解决问题:
public static MvcHtmlString MyLink(this HtmlHelper helper, string linkText, string actionName, object routeValues)
{
RouteValueDictionary routeValueDictionary = new RouteValueDictionary(routeValues);
// Add more parameters
foreach (string parameter in helper.ViewContext.RequestContext.HttpContext.Request.QueryString.AllKeys)
{
routeValueDictionary.Add(parameter, helper.ViewContext.RequestContext.HttpContext.Request.QueryString[parameter]);
}
return helper.ActionLink(linkText, actionName, routeValueDictionary);
}
关于c# - 创建后将属性添加到匿名类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/233711/