Классы 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.