我如何处理一个列表的空视图包,它有时可能是空的 - 一个空的?
我收到错误:“无法对空引用执行运行时绑定”。
我有一个MVC应用程序并将一个viewbag(这是一个列表)作为参数传递。
有时它可能是空的。
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, movieGenre = (SelectList)ViewBag.movieGenre, searchString = ViewBag.searchString.toString() }))
答案 0 :(得分:0)
如果ViewBag为null,您可以从ViewBag中提供默认值
(Viewbag.something ?? 'This is the value if Viewbag.something is null')
答案 1 :(得分:0)
尝试movieGenre = (SelectList)(ViewBag.movieGenre ?? new SelectList),
我目前无法对此进行测试,但我认为它应该可行,请告诉我是否有
使用??
称为空合并,在许多情况下都非常方便。
答案 2 :(得分:0)
如果值不存在,您必须首先尝试从viewbag中提取值并将其初始化为空SelectList
。
请在PagedListPager
来电之前的任何地方输入此代码:
@{
SelectList movieGenre = (ViewBag.movieGenre == null) ? new SelectList(new List<string>()) : ViewBag.movieGenre;
}
然后在渲染调用中使用该实例:
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, movieGenre, searchString = ViewBag.searchString.toString() }))
请注意,您的searchString
媒体资源可能存在同样的问题。