ViewModel不包含电子邮件的定义

时间:2016-06-29 17:28:09

标签: c# asp.net-mvc asp.net-mvc-4

我正在尝试将两个UserManager Feedback模型绑定到一个视图但我面临的问题是视图中不包含任何电子邮件定义...这是我的所有代码

public  class FeedbackMixModel
    {

        public List<UserManager> allUserManagers { get; set; }

        public List<Feedback> allfeedbacks { get; set; }

    }

控制器==&GT;&GT;&GT;

  var user = db.UserManagers.ToList();
            var feedbacks = db.Feedbacks.ToList();

            var Model = new FeedbackMixModel
            {
                allUserManagers =user,
                allfeedbacks=feedbacks
            };

            return View(Model);

视图==&GT;&GT;

@model WebApplication5.Models.FeedbackMixModel


<!-- Content Wrapper. Contains page content -->
    <div class="content-wrapper">
        <!-- Content Header (Page header) -->

        <!-- Main content -->


            <table class="pretty" id="dt">
                <thead>
                    <tr>
                        <th >
                            @Html.DisplayNameFor(model => model.Email)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.CurrentStorage)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.MaxStorage)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.LastLoginMonth)
                        </th>

                    </tr>
                </thead>
                <tbody>
                     @foreach (var item in Model.allUserManagers)
                    {
                        <tr>
                            <td>
                                @Html.DisplayFor(modelItem => item.Email)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.CurrentStorage)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.MaxStorage)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.LastLoginMonth)
                            </td>

                        </tr>
                    }
                </tbody>
            </table>

我完全很困惑如何解决这个问题......电子邮件在UserManager中的定义如果我做错了我怎么能访问

1 个答案:

答案 0 :(得分:2)

您的实际Enumerable模型本身没有您打算用于标题的属性的定义:

Expression.Lambda<Func<TElementType, bool>>

您现有的模型只包含两个属性:FeedbackMixModel<thead> <tr> <th> @Html.DisplayNameFor(model => model.Email) </th> <th> @Html.DisplayNameFor(model => model.CurrentStorage) </th> <th> @Html.DisplayNameFor(model => model.MaxStorage) </th> <th> @Html.DisplayNameFor(model => model.LastLoginMonth) </th> </tr> </thead> ,因此它不知道您引用的allUserManagers或其他某些属性。根据您当前的代码,这些代码似乎是allFeedbacks个对象的实际属性,而不是您实际的Email类。

您可以考虑对标题进行硬编码以表达这些属性:

UserManager

或者您可以尝试定位集合中与this approach类似的第一个元素:

FeedbackMixModel