У меня есть основное веб-приложение .net на основе бритвенных страниц. Я использую структуру _Layout с некоторыми частями и страницами, которые должны отображаться в @renderbody (). У меня есть частичное _Sidebar со ссылками, которые должны ссылаться на страницы, которые должны загружаться в разделе @renderbody (). Я добавляю ссылку, используя директиву asp-page, и создаю элемент страницы бритвы (view + pagemodel) в папке Pages. Я не делаю никаких изменений в коде скаффолда в файлах. Я только добавляю имена файлов в директиву asp-page в ссылке на боковой панели. Я запускаю веб-приложение, нажимаю на ссылку и получаю следующую ошибку:
InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'NN.NetworkManagementPortal.Pages.WhitelistingModel', but this ViewDataDictionary instance requires a model item of type 'DeliveryPlanner.Pages.IndexModel'.
Где проблема? Я делаю тот же процесс, что и в другом проекте, где у меня нет никаких проблем.
Боковая панель:
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" asp-page="Index">
<i class="ni ni-settings text-blue"></i> Configuration Items List
</a>
</li>
<li class="nav-item">
<a class="nav-link" asp-page="Whitelisting">
<i class="ni ni-pin-3 text-orange"></i> White-list IP
</a>
</li>
<li class="nav-item">
<a class="nav-link" asp-page="About">
<i class="ni ni-single-02 text-yellow"></i> About </a>
</li>
<li class="nav-item">
<partial name="_LoginPartial">
</li>
</ul>
Вид белого списка:
@page
@model NN.NetworkManagementPortal.Pages.WhitelistingModel
@{
ViewData["Title"] = "Whitelisting";
}
<h2>Whitelisting</h2>
Белый список PageModel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace NN.NetworkManagementPortal.Pages
{
public class WhitelistingModel : PageModel
{
public void OnGet()
{
}
}
}