I am creating Html Helper in MVC 4 and I want to know how to create / html tags correctly in html helpers.
For example, here is a simple html helper that creates an image tag using the TagBuilder class:
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)); }
On the other hand, I can do something like this:
// 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" />
What is the best solution?
source share