Использование Templated Helpers в MVC 2.0: Как можно использовать имя свойства, которое я рендерил внутри помощника шаблона? - PullRequest
1 голос
/ 29 апреля 2010

Я рассматриваю новые возможности 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 знает об имени свойства. Таким образом, должен быть какой-то способ использования его в пользовательской реализации.

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...