Buduję pomocnika HTML w MVC 4 i chcę wiedzieć, jak poprawnie budować znaczniki/html w pomocnikach html.Budowanie Html w Html Helper za pomocą Razor lub budowniczy Tag?
Na przykład tutaj jest prosty HTML pomocnika, który tworzy tag obrazu za pomocą TagBuilder
Klasa:
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));
}
Z innej strony można zrobić coś takiego:
// 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" />
Który jest lepszym rozwiązaniem?
Zadałem to pytanie, ponieważ mam bardzo skomplikowanego pomocnika, który buduje stół. Aby zbudować stół, używam ogromnej ilości tagów, więc chcę wiedzieć, czy będzie wolniejszy czy wolniejszy, ponieważ może mi bardzo pomóc. –
Wstawiłbym to w pytaniu, ponieważ tworzenie kodu HTML dla tabeli jest bardziej skomplikowane niż podany przykład. Aby zbudować stoły, powinieneś rzucić okiem na pomocnika Grid MvcContrib - http://mvccontrib.codeplex.com/wikipage?title=Grid lub na WebGrid w System.Web.Helpers - http://msdn.microsoft.com/pl -us/magazine/hh288075.aspx. Nie chciałbym odkrywać koła na nowo :) –
Też tak pomyślałem, ale to nie jest to, czego potrzebowałem. Nie wyświetlam danych z DB lub czegoś podobnego ... Czy możesz mi pomóc uzyskać poprawną odpowiedź na moje pytanie? –