Классы ASP.NET MVC / Linq-to-SQL: можно ли сделать так, чтобы они выводили читаемые отображаемые имена?

Если у меня есть стол Orders с полями CustomerID, OrderID а также OrderDate, тогда будет вызван сгенерированный класс "Linq-to-SQL classes" Ordersс членами называют CustomerID, OrderID а также OrderDate, Все идет нормально.

Однако, если я тогда сделаю Html.LabelFor(m => m.OrderDate) тогда сгенерированный текст будет "OrderDate" вместо "Order Date".

Я пытался с помощью Order_Date как имя поля, но это не сработало. Есть ли способ заставить его выводить лучшее отображаемое имя?

[Я знаю, что могу использовать аннотации данных для явного указания отображаемого имени, но я действительно не хочу делать это для всех моих классов / членов - я просто хочу, чтобы оно работало по соглашению.]

3 ответа

Решение

Этот метод использует преимущества существующей архитектуры MVC 2 для размещения соглашений по всему * Для методов рендеринга вместо одного из помощников HTML и без необходимости повторно маркировать все с помощью имен пространственных свойств.

Как "высушить" атрибуты C# в моделях и моделях представления?

По сути, ваши действия переопределяют поведение MVC 2 по умолчанию ConventionModelMetadataProvider и предоставляют вам возможности для вставки ваших собственных условных соглашений.

Я предлагаю вам создать свой собственный HTML Helper для этого, что-то вроде Html.MyLabelFor,

Правила, которые нужно применить здесь, зависят от вас. Вы можете просто разделить слово по случаю.

Существует решение, доступное для ваших требований, которое содержится в ответе на этот вопрос. Asp.Net MVC 2 LabelFor Custom Text.

Другие вопросы по тегам