我想有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
',但似乎有一個名稱的擴展方法。擴展方法不能動態分派。考慮轉換動態參數或調用擴展方法而不使用擴展方法語法。
我無法理解錯誤,應該檢查什麼?
它說無法轉換類型 '字符串' 到 '廉政' – nnmmss
@nnmmss然後ViewBag.MagNo不是一個整數,而是一個字符串。把它轉換成字符串,你應該是金色的 – bas
這個答案並沒有真正解決真正的問題 - 代碼在其他項目中沒有投射,只是不在他的 - 可能有一些配置丟失,並導致編譯器感到困惑。 - 編輯:看起來像@ mkaj的回答解決了實際問題。 – BrainSlugs83