在视图页中显示Asp.net MVC视图数据
本文关键字:视图 net MVC 数据 Asp 显示 | 更新日期: 2023-09-27 17:51:08
我向视图页面发送了一个viewdata。
public ActionResult SelectRes(int id)
{
var ResList = resrepository.GetAll();
ViewData["ResList"] = new SelectList(ResList, "ResId", "Res_KORNM");
return View(svcresrelationRepository.GetAll());
}
@foreach (var item in ViewData["ResList"] as List<ITSDapper.Dapper.Resource>)
{
<tr>
<td style="text-align:center;">
@Html.DisplayFor(a=> item.Res_KORNM)
</td>
</tr>
}
我试图在视图页面中显示viewdata,但它不起作用。(对象引用未设置为对象的实例)
如何在foreach语句中显示viewdata ?
对于要由用户选择的数据,通常使用SelectList
。
如果这是你的意图,你可以使用Html.DropDownList
:
@Html.DropDownList("SelectedId",
(IEnumerable<SelectListItem>)ViewData["ResList"])
如果你只是需要查看数据,我会改变你的服务器端代码使用SelectList
以外的东西。
可以这样做:
控制器 public ActionResult SelectRes(int id)
{
var ResList = resrepository.GetAll();
ViewData["ResList"] = ResList;
return View(svcresrelationRepository.GetAll());
}
<<p> 视图/strong> @foreach (var item in ViewData["ResList"] as List<ITSDapper.Dapper.Resource>)
{
<tr>
<td style="text-align:center;">
@Html.DisplayFor(a=> item.Res_KORNM)
</td>
</tr>
}
您正在将引用转换为错误类型,您正在创建SelectList
实例,而在视图中将其转换为IList<T>
,您应该将其转换为SelectList
:
@foreach (var item in ViewData["ResList"] as SelectList)
{
<tr>
<td style="text-align:center;">
@Html.DisplayFor(a=> item.Text) // note this as well
</td>
</tr>
}