Ссылка на объект не установлена ​​на экземпляр объекта в частичном представлении - PullRequest
0 голосов
/ 11 октября 2019

Я полагаю, что это вопрос нуба, так как я просто делаю быстрое подтверждение концепции страницы и у меня не было предыдущего опыта работы со страницами с бритвой.

Я экспериментирую с частичными страницами.

Моя родительская страница выглядит следующим образом

.cshtml

@page
@model IQ_Portal.Pages.AdminModel
@{
    ViewData["Title"] = "Admin";
}

<h1>Admin</h1>

@if (@Model.IsSourceAdmin) {
    <p>UserSources.Count = @Model.UserSources.Count</p>
    @await Html.PartialAsync("~/Pages/_SourceEditor.cshtml",  Model.UserSources );
}

.cshmtl.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using IQ_Portal.Code;
using IQ_Portal.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;

namespace IQ_Portal.Pages
{
    public class AdminModel : PageModel
    {
        private static Guid SOURCE_ADMIN = new Guid("4D6F72A8-7CD1-4838-89B9-A016F76BD044");
        private static Guid SITE_ADMIN = new Guid("90D9D5F8-7525-4A7D-B66B-E612B17BAC81");

        private List<Guid> SiteAdminRoles = new List<Guid>() { SOURCE_ADMIN, SITE_ADMIN };

        private IReportRepository _repository;

        public List<AdminRole> UserAdminRoles;
        public List<Source> UserSources = new List<Source>();

        public bool IsSourceAdmin { 
            get
            {
                return UserAdminRoles.Where(uar => SiteAdminRoles.Contains(uar.Id)).Any();
            }

            private set {

            } 
        }


        public AdminModel(IReportRepository repository)
        {
            _repository = repository;
        }

        public async Task<IActionResult> OnGetAsync()
        {
            UserAdminRoles = await _repository.GetAdminRoles("email").ToListAsync();
            UserSources = await _repository.GetSources("email").ToListAsync();

            return Page();
        }


    }
}

Частичная страница - у меня были реальные элементы отображения, но просто проверка на ноль создает ошибку

@page
@model List<Model.Source>
@*
    For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@


@if (Model != null) { 

}

И ошибку

enter image description here

Что я делаю не так, когда передаю свою модель в частичное представление?

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