c# - 在不使用模型的情况下传递简单的字符串列表以在 MVC 中查看
问题描述
我想创建一个列出发生的错误的视图,同时在控制器中执行一些操作。我知道如何在使用模型时创建视图,但可以不使用模型来完成吗?只需传递简单的字符串列表?
我为有错误的视图创建了一个操作:
public ActionResult ListOfErrors(List<string> listOfErrors)
{
return View(listOfErrors);
}
以及对此操作的看法:
@model List<string>
<table>
<thead>
<tr>
<th>
Error
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@item.ToString();
</td>
</tr>
}
</tbody>
</table>
如果我这样做,我就会得到System.Collections.Generic.List``1[System.String];
。我应该改变什么?
解决方案
您可以在操作中使用所需名称(我的是 ErrorList)将变量设置为 ViewBag:
public ActionResult Index()
{
ViewBag.ErrorList = new List<string>() { "Error 1", "Error 2" };
return View();
}
然后你可以在你的视图中使用这个对象并施展你的魔法:
<ul>
@foreach (string error in (List<string>)ViewBag.ErrorList)
{
<li>error</li>
}</ul>