Home How to load partial razor page into razor view

# How to load partial razor page into razor view

user2188
1#
user2188 Published in June 22, 2018, 11:30 am
 I am trying to replace my view components with razor pages but it seems that it's not possible to load a partial razor page because a model is expected to be passed yet it is my understanding that the model for a razor page should be declared in the OnGetAsync method. Here is my code... Razor Page @page "{id:int}" @model _BackgroundModel
Name:
 Razor Page Code-Behind public class _BackgroundModel : PageModel { private readonly IDataClient _dataClient; public _BackgroundModel(IDataClient dataClient) { _dataClient = dataClient; } [BindProperty] public BackgroundDataModel Background { get; set; } public async Task OnGetAsync(int id) { Background = await _dataClient.GetBackground(id); } public async Task OnPostAsync() { if (ModelState.IsValid) { await _dataClient.PostBackground(Background); } } }  Razor View 
@await Html.PartialAsync("/Pages/Client/_Background.cshtml", new { id = 1 })
 Page Load Error InvalidOperationException: The model item passed into the ViewDataDictionary is of type '<>f__AnonymousType0`1[System.Int32]', but this ViewDataDictionary instance requires a model item of type 'WebApp.Pages.Client._BackgroundModel' In this example (as per MS recommended approach in their docs) the model is set inside the OnGetAsync method which should be run when the page is requested. I have also tried @await Html.RenderPartialAsync("/Pages/Client/_Background.cshtml", new { id = 1 }) but the same error result. How can I load the razor page into my existing view?
 You need to login account before you can post.
Processed in 0.389435 second(s) , Gzip On .