相关疑难解决方法(0)

无法动态分派扩展方法

我想在MVC中使用DropDownListFor

@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" })   
}
Run Code Online (Sandbox Code Playgroud)

在控制器中

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);
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误 …

c# asp.net-mvc asp.net-mvc-3

110
推荐指数
3
解决办法
5万
查看次数

扩展方法和动态对象

我将把我的问题总结为以下代码片段.

List<int> list = new List<int>() { 5, 56, 2, 4, 63, 2 };
Console.WriteLine(list.First());
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常.

现在我尝试了以下内容

dynamic dList = list;
 Console.WriteLine(dList.First());
Run Code Online (Sandbox Code Playgroud)

但是我得到了RuntimeBinderException.为什么会这样?

c# dynamic c#-4.0

93
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×2

asp.net-mvc ×1

asp.net-mvc-3 ×1

c#-4.0 ×1

dynamic ×1