Невозможно преобразовать тип 'char' в 'string - PullRequest
0 голосов
/ 17 сентября 2018

Я получаю эту ошибку в одном проекте, и код отлично работает на другом проекте. Я пробовал несколько, чтобы дублировать код как есть. Есть ли способ найти, откуда возникла ошибка ??

@if (ViewBag.RolesForThisUser != null)
{
    <div style="background-color:lawngreen;">
        <table class="table">
            <tr>
                <th>
                    @Html.DisplayName("Roles For This User")
                </th>
            </tr>
            <tr>
                <td>
                  @foreach (string s in ViewBag.RolesForThisUser) //this line
                    {
                        <li>@s</li>
                    }
                </td>
            </tr>
        </table>

1 Ответ

0 голосов
/ 17 сентября 2018

Я подозревал, что ViewBag.RolesForThisUser сам по себе уже содержит string, ни массив, ни набор строк (например, string[] или List<string>), поэтому использование цикла foreach бессмысленно (а сам string содержит * Массив 1007 *, который объясняет, почему не удалось преобразовать тип). Вы можете просто отобразить его без foreach:

@if (!string.IsNullOrEmpty(ViewBag.RolesForThisUser))
{
    <div style="background-color:lawngreen;">
        <table class="table">
            <tr>
                <th>
                    @Html.DisplayName("Roles For This User")
                </th>
            </tr>
            <tr>
                <td>
                   @ViewBag.RolesForThisUser
                </td>
            </tr>
        </table>
    </div>
}

Или присвойте коллекцию строк методу ViewBag.RolesForThisUser из метода GET, чтобы вы могли использовать цикл foreach, как показано в примере ниже:

Контроллер

public ActionResult ActionName()
{
    var list = new List<string>();

    list.Add("Administrator");
    // add other values here

    ViewBag.RolesForThisUser = list;

    return View();
}

View

@if (ViewBag.RolesForThisUser != null)
{
    <div style="background-color:lawngreen;">
        <table class="table">
            <tr>
                <th>
                    @Html.DisplayName("Roles For This User")
                </th>
            </tr>
            <tr>
                <td>
                    @foreach (string s in ViewBag.RolesForThisUser)
                    {
                        <p>@s</p>
                    }
                </td>
            </tr>
        </table>
    </div>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...