2010-04-01 6 views
0

J'ai généré htmlAttributes - à l'origine dans le but de créer un lien avec l'attribut en utilisant Html.ActionLink.Comment décompresser htmlAttributes dans une balise span dans ASP.NET MVC

Maintenant, en fonction de certaines conditions, j'aimerais créer une balise <span> à la place et y ajouter les attributs. Y at-il de toute façon cela peut être fait facilement?

Par exemple: quelque chose comme:

<span <%= htmlAttributes.Unpack() %> > Some txt </span> 

OU

<%= Html.SpanTag("Some txt", htmlAttributes) %> 

ou quelque chose similaire sans wresling trop avec les htmlAttribues déjà générés?

Merci

Répondre

0

Vous pouvez facilement construire une extension Html.Span quelque chose comme:

public static MvcHtmlString DatePicker(this HtmlHelper htmlHelper, string name, string text, object htmlAttributes) 
    { 
     RouteValueDictionary attributes = 
      htmlAttributes == null ? new RouteValueDictionary() 
            : new RouteValueDictionary(htmlAttributes); 
     TagBuilder tagBuilder = new TagBuilder("span"); 
     tagBuilder.MergeAttributes(attributes); 
     tagBuilder.MergeAttribute("name", name, true); 
     tagBuilder.GenerateId(name); 
     tagBuilder.SetInnerText(text); 

     return MvcHtmlString.Create(tagBuilder.ToString()); 
    } 

Je n'ai pas testé cela, mais devrait fonctionner

Questions connexes