Posterior a buscar en diferentes repositorios y páginas webs de internet finalmente hallamos la respuesta que te compartimos aquí.
Solución:
Si realizo un cambio en el archivo BasicPartial.cshtml, el modelo ya no es null.
Todo lo que tengo que hacer es eliminar la directiva @page para que el archivo BasicPartial.cshtml ahora tenga el siguiente aspecto:
@model IndexModel
@*
For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@
This is the text and the user name is @(Model.UserName).
Ahora funciona perfectamente. El objeto Model es un objeto válido con el valor de propiedad establecido como se esperaba. (Vea el texto resaltado en la imagen a continuación).
Como señaló OP, eliminar la directiva @page arreglará las cosas.
De los documentos para @page
@page convierte el archivo en una acción MVC, lo que significa que maneja las solicitudes directamente, sin pasar por un controlador.
En otras palabras, su controlador en realidad no se estaba usando, a pesar de ser llamado*.
*Al menos en mi caso, mi controlador se llamaba . No probé el código de OP
Sin duda, un diseño defectuoso.
Nos puedes añadir valor a nuestro contenido informacional participando con tu veteranía en las ilustraciones.