Моя частичная страница не получает правильную модель из PageModel .NET 2.2 - PullRequest
0 голосов
/ 06 декабря 2018

Я пытался визуализировать партиал при нажатии на навигационную таблетку. Я могу видеть партиал и поля, пока я использую модель страницы.В настоящее время я использую Razor Pages .NET2.2.Мой вопрос заключается в том, как получить частичную страницу для использования PageModel с частичной страницей.У меня есть еще много полей в модели автомобиля, и я хочу использовать их на неполной странице.Кажется, он хочет PageModel в ViewDataDictionary.Итак, как мне передать PageModel в нее, чтобы я мог использовать PageModel на неполной странице?

Метод и модель модели моей страницы (CarEditModel)

   [BindProperty]
   public Car Data { get; set; }

   public PartialViewResult OnGetCarPartial(int Id)
   {
       Data = Repo.GetById(Id);
       return Partial("_EditCarPartial",Data);
    }

Моя частичная страница

@model CARORDR.Areas.Auto.Pages.Edit.CarEditModel
@{
  Layout = null;
 }
<div class="panel panel-default">
<div class=" panel-heading">
 <div class="form-group">
 <label asp-for="Data.CarId" class="control-label">Car ID</label>
 <input asp-for="Data.CarId" type="text" class="form-control" value="" />
 <span asp-validation-for="Data.CarId" class="text-danger"></span>
 <label asp-for="Data.CarName" class="control-label">Car Name</label>
 <input asp-for="Data.CarName" type="text" class="form-control" >
 <span asp-validation-for="Data.CarName" class="text-danger"></span>
 </div>
 </div>

Моя страница

@Page
@model CARORDR.Areas.Auto.Pages.Edit.CarEditModel
@{
  Layout = Layout;
 }
<div id="partialPagegoesHere"></div>

Исключение, которое я получаю

System.InvalidOperationException Message = Элемент модели, переданный в ViewDataDictionary, имеет тип 'CARORDR.Models.Car', но для этого экземпляра ViewDataDictionary требуется элемент модели типа' CARORDR.Areas.Auto.Pages.Edit.CarEditModel '.

Обновление: вот решение, которое я нашел для этой проблемы

public PartialViewResult OnGetCarPartial(int Id)
   {
       Data = Repo.GetById(Id);
       return Partial("_EditCarPartial",this);
    }
...