Вы пытаетесь написать собственный помощник HTML, который будет генерировать этот HTML?Я бы порекомендовал вам использовать пользовательский шаблон редактора, потому что у вас есть основная разметка.Таким образом, у вас может быть следующее частичное (~/Views/Shared/EditorTemplates/SomeViewModel.ascx
):
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<AppName.Models.SomeViewModel>" %>
<div class="editor-label">
<%: Html.LabelFor(model => model.dateAdded) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.dateAdded, String.Format("{0:g}", Model.dateAdded)) %>
<%: Html.ValidationMessageFor(model => model.dateAdded) %>
</div>
, а затем всякий раз, когда у вас есть строго типизированное представление SomeViewModel, просто:
<%= Html.EditorForModel() %>
или если у вас есть свойствотипа SomeViewModel:
<%= Html.EditorFor(x => x.SomePropertyOfTypeSomeViewModel) %>
, который будет отображать пользовательский шаблон редактора.
Что касается помощника, правильная подпись будет:
using System.Web.Mvc;
using System.Web.Mvc.Html;
public static class HtmlExtensions
{
public static MvcHtmlString DataField(this HtmlHelper<SomeViewModel> htmlHelper)
{
return htmlHelper.TextBoxFor(x => x.dateAdded);
}
}