سؤال

أود أن عرض سحابة الكلمة الدلالية في اختبار التطبيق باستخدام فئة المساعد لخلق html.

يمكنني استخدام كل حلقة في إطلالة جزئية على زيارة كل عنصر في نموذج

Inherits="System.Web.Mvc.ViewUserControl < IEnumerable < MyTestproject.Models.TagCount > >

foreach (var item in Model) {

}

ولكن عندما كنت في محاولة لتمرير نموذج مساعد من الدرجة واستخدام كل حلقة تظهر رسالة الخطأ التالية:

public static string DisplayCloud < TagCount >(TagCount objTags) {

..
       foreach (var item in objTags) {

       }
}

بيان foreach لا تعمل على المتغيرات من نوع 'TagCount' لأن 'TagCount' لا يحتوي على العامة تعريف 'GetEnumerator'

ما هو الفرق أو أنا بتمريرها بشكل خاطئ ؟

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

المحلول

ولأن كنت تمرير نوع مختلف.

والرأي هو الحصول على IEnumerable<TagCount>

والمساعد هو الحصول على TagCount

وكود مساعدك يجب أن يكون:

public static string DisplayCloud(IEnumerable<TagCount> objTags) {

..
       foreach (var item in objTags) {

       }
}

ونوع عام على الأسلوب يبدو عديم الفائدة / غير قانوني، لأنه نوع الفعلي، ولذا فإنني إزالته، وكذلك تحديد نوع الوسيطة.

نصائح أخرى

ننظر عن كثب في الفرق بين الرأي الدرجة التوقيع المساعد الخاص بك طريقة التوقيع:

يرث="System.ويب.Mvc.ViewUserControl<IEnumerable<MyTestproject.Models.TagCount>>

الجمهور ثابت سلسلة DisplayCloud<TagCount>(TagCount objTags)

يحتاج طريقة الحصول على IEnumerable<TagCount> من أجل دعوة foreach.

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