首页 > 解决方案 > 在不使用模型的情况下传递简单的字符串列表以在 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];。我应该改变什么?

标签: c#asp.net-mvc

解决方案


您可以在操作中使用所需名称(我的是 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>

推荐阅读