没有可访问的扩展方法

时间:2019-06-03 06:26:57

标签: c# asp.net-mvc model-view-controller

该视图无法获取我的GridData,不确定原因。

代码在视图中传递GridData,但是视图页面无法访问GridData对象。

UserMaster模型:

namespace Project.Models
{
    public class UserMaster
    {
        [Key]
        public int UserId { get; set; }

        [Display(Name = "First Name")]
        public string FirstName { get; set; }
        [Required]

        [Display(Name = "Last Name")]
        public string LastName { get; set; }
        [Required]
    }

    public class UserMasterList
    {
        public List<UserMaster> GridData { get; set; }
    }
}

控制:

 UserMasterList userMasterList = new UserMasterList();
            List<UserMaster> gl = new List<UserMaster>();

            var userMasterListResult = _context.UserMaster.FromSql("EXECUTE [dbo].[UserMaster_Get] {0}", 0).ToList();

            foreach (var data in userMasterListResult)
            {
                gl.Add(data);
            }

            userMasterList.GridData = gl;
            return View(userMasterList);

查看:

 @model Project.Models.UserMaster
           @foreach (var data in @Model.GridData)   {
                <tr>
                    <td>
                        @Html.DisplayFor(modelItem => data.FirstName)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => data.LastName)
                    </td>
                </tr>
            }

错误: 该代码在视图中传递了GridData,但是视图页面无法访问GridData对象。

2 个答案:

答案 0 :(得分:1)

您应该拥有

@model Project.Models.UserMasterList

答案 1 :(得分:1)

在控制器中,您正在传递类型为UserMasterList的对象,但是在您的视图中,模型的类型为UserMaster,因此您应该像这样更新视图中的model下方:

@model Project.Models.UserMasterList