Я рассматриваю новые возможности ASP.NET MVC 2.0.
Во время обзора я нашел действительно интересным использование Templated Helpers.
Как они описали, основная причина их использования - предоставить общий способ отображения некоторых типов данных.
Теперь я хочу использовать этот способ в моем проекте для типа данных DateTime
Мой проект был написан для MVC 1.0, поэтому создание editbox выглядит следующим образом:
<%= Html.TextBox("BirthDate", Model.BirthDate, new { maxlength = 10, size = 10, @class = "BirthDate-date" })%>
<script type="text/javascript">
$(document).ready(function() {
$(".BirthDate-date").datepicker({ showOn: 'button', buttonImage: '<%=Url.Content("~/images/i_calendar.gif") %>', buttonImageOnly: true });
});
</script>
Теперь я хочу использовать Template Helper, поэтому я хочу иметь приведенный выше код, как только я наберу следующее предложение:
<%=Html.EditorFor(f=>f.BirthDate) %>
В соответствии с руководством я создаю частичное представление DataTime.ascx в папке Shared / EditorTemplates.
Я положил туда код выше и сложил с проблемой.
Как передать имя свойства, которое я отображаю, с помощью помощника шаблона?
Как вы можете видеть из моего примера, он мне действительно нужен, поскольку я использую имя свойства, чтобы указать значение данных и имя параметра, которое будет отправлено во время процедуры POST. Также я использую его для генерации имени класса для построения календаря JS.
Я попытался удалить свой частичный класс для помощника шаблона и заставил MVC генерировать его поведение по умолчанию.
Вот что это сгенерировало для меня:
<input type="text" value="04/29/2010" name="LoanApplicationDays" id="LoanApplicationDays" class="text-box single-line">
Как вы можете видеть, он использовал имя свойства для атрибутов "name" и "id".
Этот пример позволяет предположить, что Template Helper знает об имени свойства.
Таким образом, должен быть какой-то способ использования его в пользовательской реализации.
Спасибо за вашу помощь!