Net Core Inline Razor Markup Null Model

Мое первое использование встроенной разметки Razor Pages. Возникла эта странная проблема после передачи ViewModel в PartialView.

Конечно, на моей родительской странице я передаю ViewModel в PartialView:

@{Html.RenderPartial("Partial/_RequestView", Model.NewRequest);}

public class IndexModel : PageModel
{
    private readonly IActiveDirectoryClient _activeDirectoryClient;
    private readonly ITravelClient _travelClient;
    public IEnumerable<TravelRequestViewModel> Requests { get; set; }

В частичном представлении у меня нет проблем со ссылкой на модель в лямбда-выражении.

@Html.HiddenFor(model => model.RequestId)

Однако, когда я пытаюсь сослаться на Модель в разметке бритвы встроенной, Модель имеет значение null. Любые идеи?

<p>@Model.Name</p>

Свойство NewRequest устанавливается в методе OnGetAsync () на родительской странице.

    public async Task<IActionResult> OnGetAsync()
    {
        NewRequest = BuildNewRequest();
        if (NewRequest == null)
            throw new NullReferenceException("Unable to build new travel request");

        return await Task.FromResult(Page());
    }

person Tango Down    schedule 11.01.2018    source источник
comment
Какой у вас тип модели?   -  person MJK    schedule 12.01.2018
comment
PageModel, обновленный оригинал с фрагментом кода родительского представления   -  person Tango Down    schedule 13.01.2018


Ответы (1)


Ответил на свой вопрос. НЕОБХОДИМО удалить директиву @page, чтобы частичное представление работало и чтобы @Model была распознана.

Довольно странно, что шаблоны VS 2017 добавляют эту директиву для частичного просмотра, я могу только предположить, что это ошибка.

person Tango Down    schedule 16.01.2018