Запутался в передаче контроллера данных в viewmodel для просмотра - PullRequest
0 голосов
/ 28 мая 2018

Я не делал MVC уже 2 года, так что я думаю, что сейчас просто очень ржавый.Я использую приведенный ниже код для отображения простого списка данных из моей БД на моей странице, но я получаю сообщение об ошибке

оператор foreach не может работать с переменными типа 'Models.UsersViewModel', поскольку '.Models.UsersViewModel »не содержит общедоступного определения для« GetEnumerator »

Я уверен, что просто что-то упустил очень глупый, но, как я уже сказал, я просто погружаю ногу обратно в пруд.

Спасибо за любую информацию.

Business.User

    public Decimal USER_ID { get; set; }
    public String USERNAME { get; set; }
    public String SURNAME { get; set; }
    public String GIVENNAME { get; set; }

    public static List<User> GetList()
    {
        Entities ctx = new Entities();

        List<User> a = (from x in ctx.TABLE1
                        select new User()
                        {
                            USER_ID = x.USER_ID,
                            USERNAME = x.USERNAME,
                            SURNAME = x.SURNAME,
                            GIVENNAME = x.GIVENNAME
                        }).OrderBy(o => o.SURNAME).ToList();
        return a;
    }

Контроллер

        public ActionResult Index()
    {
        ViewBag.EnvPath = CurrentENV;

        var usersViewModel = new UsersViewModel();
        usersViewModel._Users = Business.User.GetList();

        return View(usersViewModel);
    }

ViewModel

public class UsersViewModel
{
    public List<Business.User> _Users { get; set; }
}

Просмотр

    @model ProactiveDisclosure.Models.UsersViewModel

    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }

    <h2>Index</h2>

    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table class="table">
        <tr>
            <th></th>
        </tr>

    @foreach (var item in Model) {

    }

    </table>

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Ну, как ни странно, он начал работать, когда я закрыл свой Index.cshtml и снова открыл с Model._Users

0 голосов
/ 28 мая 2018

UsersViewModel содержит список Business.User.Это не список Business.User.

Измените итерацию на @foreach(var user in Model._Users)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...