Sto costruendo un helper Html in MVC 4 e voglio sapere come creare tag/html negli helper HTML in modo corretto.Costruire Html in Helper Html usando il builder Razor o Tag?
Per esempio qui è semplice aiutante HTML che crea tag immagine usando TagBuilder
classe:
public static MvcHtmlString Image(this HtmlHelper html, string imagePath,
string title = null, string alt = null)
{
var img = new TagBuilder("img");
img.MergeAttribute("src", imagePath);
if (title != null) img.MergeAttribute("title", title);
if (alt != null) img.MergeAttribute("alt", alt);
return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
}
Da un altro lato che posso fare qualcosa di simile:
// C#:
public static MvcHtmlString Image(this HtmlHelper html, string imagePath,
string title = null, string alt = null)
{
var model = new SomeModel() {
Path = imagePath,
Title = title,
Alt = alt
};
return MvcHtmlString.Create(Razor.Parse("sometemplate.cshtml", model));
}
// cshtml:
<img src="@model.Path" title="@model.Title" alt="@model.Alt" />
che è la soluzione migliore?
Ho fatto questa domanda perché ho un aiutante molto complicato che costruisce un tavolo. Per costruire la tabella, utilizzo un numero enorme di tag, quindi voglio sapere se sarà molto più lento o più lento perché può aiutarmi molto. –
L'avrei messo nella domanda come la costruzione dell'HTML per una tabella è più complicato del tuo esempio dato. Per la creazione di tabelle si dovrebbe dare un'occhiata a Grid helper di MvcContrib - http://mvccontrib.codeplex.com/wikipage?title=Grid o alla WebGrid in System.Web.Helpers - http://msdn.microsoft.com/en -us/magazine/hh288075.aspx. Non vorrei reinventare la ruota :) –
Anch'io l'ho pensato ma non è quello di cui avevo bisogno. Non sto visualizzando dati da DB o qualcosa del genere ... Quindi, per favore, puoi aiutarmi a ottenere la risposta corretta per la mia domanda? –