Как получить доступ к данным из представления в модель в C # и ASP.NET MVC - PullRequest
0 голосов
/ 27 октября 2019

У меня есть классы User и Role, и я хочу получить доступ к имени пользователя с Role.

Мои классы:

public class ShiftCalendar
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public int ShiftId { get; set; }
    public virtual Shift Shift { get; set; }

    public DateTime Date { get; set; }
    public DateTime ShiftEndTime { get; set; }        

    public User ShiftManager { get; set; }
    public string ShiftManagerId { get; set; }
}

public class Shift
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [MaxLength(50)]
    public string Description { get; set; }       

    public TimeSpan ShiftBeginTime { get; set; }
    public TimeSpan ShiftEndTime { get; set; }

    public ICollection<ShiftCalendar> ShiftCalendars { get; set; }
}

public class User: IdentityUser
{
    public String FirstName { get; set; }
    public string Surname { get; set; }

    public ICollection<ShiftCalendar> ShiftCalendars { get; set; }
}

Я хочу получить доступ к имени пользователя в представлении индекса ShiftCalendar, но эти данные пустые, когда я пытался их показать:

Код представления:

@model IEnumerable<Project.Dal.Models.ShiftCalendar>

@{
    Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";
}
<table>

  @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Shift.Description)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ShiftManager.FirstName) 
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Date)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ShiftEndTime)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |

                @Html.ActionLink("Delete", "Delete", new { id = item.Id })
            </td>
        </tr>
    }
</table>

Появляются другие значения (Shift.Description, Date и EndDate).

Контроллер индекса:

public async Task<ActionResult> Index()
{
    var shiftCalendars = _unitOfWork.ShiftCalendarsRepository.Get();
    return View(await shiftCalendars.ToListAsync());
}

Что я делаю не так?

Спасибо!

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