我使用匿名对象将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/

10-10 21:31