我想有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