Как создать MVC 2 DisplayTemplate для поля, формат отображения которого зависит от другого поля? - PullRequest
1 голос
/ 24 марта 2010

Если у меня есть свойство, формат отображения которого зависит от значения другого свойства в модели представления, как мне создать для него шаблон отображения?

Комбинация отображения поля field1, зависящего от значения поля field2, будет использоваться во всем приложении, и я хотел бы включить это в шаблон отображения MVC 2.

Если говорить более конкретно, я уже создал шаблон отображения (Social.ascx) для пользовательского типа данных Social, который маскирует номер социального страхования для отображения. Например, XXX-XX-1234.

[DataType("Social")]
public string SocialSecurityNumber { get; set; }

У всех сотрудников также есть идентификатор сотрудника. Некоторые компании используют номер социального страхования сотрудника либо в качестве полного идентификатора сотрудника, либо как его часть. Мне нужно также замаскировать employeeID, если он содержит соц. Я хотел бы создать еще один шаблон отображения (EmpID.ascx) для выполнения этой задачи.

[DataType("EmpID")]
public string EmployeeID { get; set; }

Проблема в том, что я не знаю, как получить оба свойства в шаблоне "EmpID", чтобы можно было выполнить сравнение.

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2010

Не можете ли вы создать собственный класс ViewModel, связывающийся с SocialSecurityNumber и EmployeeID, и создать собственный шаблон редактора для этого класса?

0 голосов
/ 24 марта 2010

Это может не дать прямого ответа на ваш вопрос, но мне интересно, почему идентификатор сотрудника только иногда выделяется. Я знаю, что к соцсетям предъявляются юридические требования, но идентификатор сотрудника (или должен быть) также несколько чувствителен. Я бы подумал, что было бы лучше по умолчанию выделить оба, если вошедший в систему пользователь не обладает какими-либо привилегиями, которые делают их полностью читабельными.

Если вы можете сделать это, это, вероятно, несколько упростит вашу логику / дизайн.

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