c# - شرح - get asp net




لا يمكن إرسال أساليب التمديد بشكل ديناميكي (2)

أرغب في الحصول على DropDownListFor في MVC

@foreach (var item in Model)
{
    @Html.DropDownListFor(modelItem => item.TitleIds, new SelectList(ViewBag.TitleNames as System.Collections.IEnumerable, "TitleId", "Title.TitleText"), "No: " + ViewBag.MagNo, new { id = "TitleIds" })   
}

في المراقب المالي

public ActionResult ArticleList(int id)
{
    ArticleWriter_ViewModel viewModel = new ArticleWriter_ViewModel();
    Func<IQueryable<NumberTitle>, IOrderedQueryable<NumberTitle>> orderByFunc = null;
    Expression<Func<NumberTitle, bool>> filterExpr = null;
    if (id > 0)
    {
        filterExpr = p => p.MagazineId.Equals(id);
    }
    var wholeTitles = unitOfWork.NumberTitleRepository.Get(filterExpr,  orderByFunc, "Magazine,Title").ToList();          

    ViewBag.MagNo = wholeTitles[0].Magazine.MagNo.ToString();
    ViewBag.MagId = wholeTitles[0].Magazine.Id;
    ViewBag.TitleNames = wholeTitles;

    return View("../Panel/Magazine/ArticleList", "_BasicLayout", viewModel);
}

لكني حصلت على هذا الخطأ

' System.Web.Mvc.HtmlHelper<System.Collections.Generic.IEnumerable<Cinemavaadabiat.ViewModel.ArticleWriter_ViewModel>> ' لا يوجد لديه أسلوب قابل للتطبيق المسمى ' DropDownListFor ' ولكن يبدو أنه يحتوي على طريقة ملحق بهذا الاسم. لا يمكن إرسال أساليب التمديد بشكل ديناميكي. ضع في الاعتبار الوسائط الحيوية أو استدعاء طريقة ملحق بدون بناء جملة أسلوب ملحق.

لا أستطيع فهم الخطأ ، ما الذي يجب التحقق منه؟


أنت تستخدم أنواعًا ديناميكية في طرق الإضافة ، وهي غير مدعومة.

إرسال الأنواع الديناميكية إلى الأنواع الفعلية ، وستعمل.

من ما أراه الآن ، أود أن أقول:

(string) ViewBag.MagNo

التي من شأنها أن تؤدي إلى

@foreach (var item in Model)
{
    @Html.DropDownListFor(modelItem => item.TitleIds, 
       new SelectList(ViewBag.TitleNames as System.Collections.IEnumerable, 
       "TitleId", "Title.TitleText"), 
       "No: " + (string) ViewBag.MagNo, 
       new { id = "TitleIds" })   
}

كان الإصلاح الخاص بهذه المشكلة إضافة:

    @model MyModel

في الجزء العلوي من السيطرة الجزئية. كنت قد نسيت ذلك.