Я хочу иметь 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>>
' не имеет применимый метод named 'DropDownListFor
', но по этому имени имеет метод расширения. Методы расширения не могут динамически отправляться. Рассмотрите возможность использования динамических аргументов или вызова метода расширения без синтаксиса метода расширения.
Я не могу понять ошибку, что я должен проверить?
он говорит, что не удается преобразовать 'строка' типа для 'межд' – nnmmss
@nnmmss тогда ViewBag.MagNo не является INT, но строка. Передайте его в строку, и вы должны быть золотыми. – bas
. Этот ответ действительно не затрагивает реальную проблему - код работает в других проектах без кастинга, просто не в его - вероятно, какая-то конфигурация отсутствует, и это приводит к тому, что компилятор путайте. - Редактировать: Похоже, ответ @ mkaj отвечает на фактическую проблему. – BrainSlugs83