Я создаю частичное представление как часть моего Index.cshtml.Я следую основам, изложенным в статье Microsoft => https://docs.microsoft.com/en-us/aspnet/core/mvc/views/partial?view=aspnetcore-2.1
Суть в том, что я: добавляю span в мой файл Index.cshtml, который фактически загружается с HTML из RazorPage.Соответствующий HTML-код в Index.cshtml выглядит следующим образом:
<span id="basicView">
@{
Model.UserName = "IndexUser";
await Html.RenderPartialAsync("BasicPartial", Model);
}
</span>
Я добавил публичное свойство для моей IndexModel с именем UserName в RazorPage, и оно выглядит следующим образом:
namespace FirstCore.Pages
{
public class IndexModel : PageModel
{
public string UserName;
public void OnGet()
{
}
}
}
Это очень просто для этого примера.Итак, в HTML-файле Index.cshtml вы можете видеть, что я устанавливаю значение этого открытого свойства в «IndexUser», а затем передаю имя страницы Razor («BasicPartial» - View) и объект Model в BasicaPartial.Страница Razor.
Страница BasicPartial очень проста - была сгенерирована из шаблона Visual Studio 2017 - Добавить ... Страница Razor ... Все выглядит так:
@page
@model IndexModel
@*
For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@
<div>This is the text and the user name is @(Model.UserName).</div>
На самом деле, единственная важная часть - это место, где я читаю значение свойства UserName из переданного в Model.Вы можете видеть, что я также определил @model как IndexModel вверху.
Основная проблема - модель ВСЕГДА пуста
Когда я запускаю это очень простопример.Приложение сообщает мне, что объект Model имеет значение null.
Вы можете полагать, что это UserName, что NULL, но если я поставлю оченьпростая директива вверху, например
<div>@Model</div>
Затем она говорит мне, что Model является нулем, хотя я знаю, что передаю ее.
Знаете ли вы, почему она нулевая?