0

このカスタム拡張メソッドのオプションをマージするにはどうすればよいですか?

  public static MvcHtmlString ActionLink(this AjaxHelper html,
                    string linkText,
                    string actionName,                        
                    object htmlAttributes,
                    AjaxOptions options )
    {
        RouteValueDictionary attributes = new RouteValueDictionary(htmlAttributes);


        TagBuilder linkTag = new TagBuilder("a");        

        UrlHelper url = new UrlHelper(html.ViewContext.RequestContext);

        linkTag.Attributes.Add("href", url.Action(actionName));



        return MvcHtmlString.Create(linkTag.ToString(TagRenderMode.Normal));
    }
}
4

2 に答える 2

1

AjaxOptions は単なるクラスです。独自のプロパティを設定できます。既存の Ajax ヘルパーを使用し、最初に AjaxOptions を変更することをお勧めします。そう:

public static MvcHtmlString ActionLinkWithSpan(this AjaxHelper html,
                        string linkText,
                        string actionName,
                        object htmlAttributes,
                        AjaxOptions options)
{
    RouteValueDictionary attributes = new RouteValueDictionary(htmlAttributes);
    // Add more attributes here if you want

    options.InsertionMode = InsertionMode.InsertBefore; // As an example. Or amend any others here.

    return html.ActionLink(linkText, actionName, attributes, options);
}
于 2012-07-12T12:15:01.117 に答える
0

AjaxOptions次のようにリンクタグにマージできます。

linkTag.MergeAttributes(ajaxOptions.ToUnobtrusiveHtmlAttributes());

さらに、html 属性を次のようにマージできます。

linkTag.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
于 2012-07-12T13:23:58.777 に答える