如何在asp.net mvc中使用Viewbag中的.contents

本文关键字:Viewbag 中的 contents mvc asp net | 更新日期: 2023-09-27 18:25:47

我的视图中有这个foreach:

@foreach (var partner in ((List<string>)ViewBag.Email))
{
    if (ViewBag.hasFeedback.Contains(partner))
    {
        <div class="checkbox">
            <label>
                <input type="checkbox" name="partners" value="@partner" checked="checked">
                @ViewBag.FirstName[item] @ViewBag.Lastname[item] ( @partner.ToString() )
            </label>
        </div>
    }
    item += 1;
}

在我的ViewBag.hasFeedback中,我有一个包含字符串的数组。如何将其与变量"partner"进行比较代码中的显示方式?代码中的这个例子不起作用,因为"system.array不包含包含函数的定义"。

如何在asp.net mvc中使用Viewbag中的.contents

您需要首先将ViewBag.hasFeedback强制转换为字符串数组。像这样:

@foreach (var partner in ((List<string>)ViewBag.Email))
{
    string[] hasFeedback = string[](ViewBag.hasFeedback);
    if (hasFeedback.Contains(partner))
    {
        <div class="checkbox">
            <label>
                <input type="checkbox" name="partners" value="@partner" checked="checked">
                @ViewBag.FirstName[item] @ViewBag.Lastname[item] ( @partner.ToString() )
            </label>
        </div>
    }
    item += 1;
}

然而,使用ViewBag的方式是一个非常糟糕的主意。ViewBag应该用于将模型中没有的数据传递到视图中。如果有太多数据要传递到视图,则应该创建一个视图模型。