سؤال

حصل أي شخص على أي فكرة عن كيفية تحديد النص عند استخدامه Html.LabelFor(c=>c.MyField). وبعد انه فقط MyField قد لا يكون اسم مناسب لعرضه على الشاشة، قد ترغب في "حقل رائع" بدلا من ذلك، ولكن لا يبدو أنه هناك أي حمولة زائدة.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

انت تستخدم System.ComponentModel.DataAnnotations.DisplayAttribute:

[Display(Name = "My Field")]
public string MyField { get; set; }

وضع ResourceType ستتيح لك العقار في سمة الخاص بك استخدام ملف مورد.

(قبل استخدام .NET 4 System.ComponentModel.DisplayNameAttribute مع تحذير أن اسم العرض يجب أن يكون ثابتا للوقت.)

نصائح أخرى

حل سهل فقط أضف ما يلي في العرض:

@Html.LabelFor(c=>c.MyField, "My Field")

هناك تحميل جديد في MVC 3 لذلك يجب أن تكون قادرا على تحديد اختبار مخصص للمساعد Labelfor.

لم أقم بتنزيل v2 حتى الآن، لذلك لا أستطيع الاختبار، لكنني أعتقد أنه يعمل مثل DynamicData، وفي هذه الحالة كنت تفعل شيئا مثل هذا على النموذج الخاص بك:

[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}

هناك طريقتان
1 "التعليقات التوضيحية المباشرة"
2 "Annotatinos مع مورد"
التوضيحية المباشرة

[Display(Name = "My Field")]
public string MyField { get; set; }

Annotatinos مع مورد

[Display(Name = "My_Field",ResourceType = typeof(Resource))]
public string MyField { get; set; }

الطريقة الثانية تتطلب إضافة قيمة في ملف الموارد المحتمل باسم resource.resx..
استخدام الذي يناسب هدفك.

لم أتحقق من CP1 حتى الآن، لكنني قرأت عن إطلاق سراح سكوت، ويبدو أن أذكر أن الكود تم إنشاؤه بواسطة T4. أفترض أنك يمكن أن تدع دائما، لكنني أظن أنهم سوف يقدمون الحمل الزائد في CP2.

تحرير: المصدر متاح دائما وبالتالي يمكنك فقط تعديل الطريقة، وقم بتغيير مولد T4، وسوف تكون جيدا للذهاب. وضعت أيضا في تذكرة أو طلب (بطريقة أو بأخرى) لتلك وزارة الدفاع حتى يتم عملها في الإصدار التالي.

هناك 5 الحمل الزائد. تقدم عدة معلمات ثانية من "سلسلة leashtext"، والتي ستقوم بتعيينها على "حقل رائع رائع".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top