Razor partial page vs model
От:
Codealot
Дата: 07.12.20 02:50
Оценка:
Есть основная страница, которая задается примерно вот так:
@page
@model AspNet50WebAppEmpty.Pages.IndexModel
@{
ViewData["Title"] = Model.TestProperty;
}
<!DOCTYPE html>
<html lang="en">
@await Html.PartialAsync("_PartPage", Model)
<body>
@Model.TestProperty
</body>
</html>
И частичная страница задается примерно вот так:
@page
@model AspNet50WebAppEmpty.Pages._PartPageModel
@{
}
<head>
<meta charset="utf-8" />
<title>@Model.TestProperty</title>
</head>
В частичной странице, обращение к Model выдает null ref. Вопрос: почему модель не передается корректно?
Ад пуст, все бесы здесь.
Re: Razor partial page vs model
Здравствуйте, Codealot, Вы писали:
Модели у вас разные:
C>@model AspNet50WebAppEmpty.Pages.IndexModel
C>@model AspNet50WebAppEmpty.Pages._PartPageModel
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Razor partial page vs model
От:
Codealot
Дата: 07.12.20 04:05
Оценка:
Здравствуйте, varenikAA, Вы писали:
C>>@model AspNet50WebAppEmpty.Pages.IndexModel
C>>@model AspNet50WebAppEmpty.Pages._PartPageModel
Первая наследуется от второй. Были бы разные — это invalid cast, а не null ref. Так что неверная догадка.
Ад пуст, все бесы здесь.
Re[3]: Razor partial page vs model
Здравствуйте, Codealot, Вы писали:
C>Первая наследуется от второй. Были бы разные — это invalid cast, а не null ref. Так что неверная догадка.
в частичное добавь
@using определение модели
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Razor partial page vs model
Здравствуйте, Codealot, Вы писали:
C> ViewData["Title"] = Model.TestProperty;
и вот это быть может не успевает отработать. перенеси в обработчик. он отработает гарантированно до генерации разметки.
фигню написал, сорри.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Razor partial page vs model
От:
Codealot
Дата: 07.12.20 05:05
Оценка:
Здравствуйте, varenikAA, Вы писали:
AA>в частичное добавь
AA>@using определение модели
Не понял, о чем ты.
Ад пуст, все бесы здесь.
Re[5]: Razor partial page vs model
Здравствуйте, Codealot, Вы писали:
C>Не понял, о чем ты.
@using PartialViewsSample.ViewModels
@model ArticleSection
<h3>@Model.Title Index: @ViewData["index" ]</h3>
<div>
@Model.Content
</div>
стэк-трейс хоть скинь. и property где задано в OnGet и иначе?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Razor partial page vs model
Здравствуйте, Codealot, Вы писали:
C>C> @await Html.PartialAsync("_PartPage", Model )
Кажется понял, это все разор. Если так:
@await Html.PartialAsync("_PartPage", model )
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[6]: Razor partial page vs model
От:
Codealot
Дата: 07.12.20 05:43
Оценка:
Здравствуйте, varenikAA, Вы писали:
AA>@using PartialViewsSample.ViewModels
Это просто razor page, откуда там ViewModels?
AA>стэк-трейс хоть скинь. и property где задано в OnGet и иначе?
namespace AspNet50WebAppEmpty.Pages
{
public class _PartPageModel : PageModel
{
public string TestProperty { get ; set ; } = "TestProperty" ;
public void OnGet()
{
}
}
}
AspNet50WebAppEmpty.Views.dll!AspNetCore.Pages__PartPage.Model.get() Unknown
> AspNet50WebAppEmpty.Views.dll!AspNetCore.Pages__PartPage.ExecuteAsync.AnonymousMethod__7_0() Line 8 C#
Microsoft.AspNetCore.Razor.Runtime.dll!Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.SetOutputContentAsync() Unknown
AspNet50WebAppEmpty.Views.dll!AspNetCore.Pages__PartPage.ExecuteAsync() Unknown
Microsoft.AspNetCore.Mvc.Razor.dll!Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) Unknown
Microsoft.AspNetCore.Mvc.Razor.dll!Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context, bool invokeViewStarts) Unknown
Microsoft.AspNetCore.Mvc.Razor.dll!Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) Unknown
Microsoft.AspNetCore.Mvc.ViewFeatures.dll!Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.RenderPartialCoreAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData, System.IO.TextWriter writer) Unknown
Microsoft.AspNetCore.Mvc.ViewFeatures.dll!Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.PartialAsync(string partialViewName, object model, Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary viewData) Unknown
Microsoft.AspNetCore.Mvc.ViewFeatures.dll!Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperPartialExtensions.PartialAsync(Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string partialViewName, object model) Unknown
AspNet50WebAppEmpty.Views.dll!AspNetCore.Pages_Index.ExecuteAsync() Line 9 C#
Microsoft.AspNetCore.Mvc.RazorPages.dll!Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.ExecuteAsync() Unknown
Microsoft.AspNetCore.Mvc.Razor.dll!Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) Unknown
Microsoft.AspNetCore.Mvc.Razor.dll!Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(Microsoft.AspNetCore.Mvc.Razor.IRazorPage page, Microsoft.AspNetCore.Mvc.Rendering.ViewContext context, bool invokeViewStarts) Unknown
Microsoft.AspNetCore.Mvc.Razor.dll!Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext context) Unknown
Microsoft.AspNetCore.Mvc.ViewFeatures.dll!Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(Microsoft.AspNetCore.Mvc.Rendering.ViewContext viewContext, string contentType, int? statusCode) Unknown
Microsoft.AspNetCore.Mvc.RazorPages.dll!Microsoft.AspNetCore.Mvc.RazorPages.PageResult.ExecuteResultAsync(Microsoft.AspNetCore.Mvc.ActionContext context) Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultAsync(Microsoft.AspNetCore.Mvc.IActionResult result) Unknown
Microsoft.AspNetCore.Mvc.RazorPages.dll!Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeResultAsync(Microsoft.AspNetCore.Mvc.IActionResult result) Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext<Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter>(ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.State next, ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeNextResultFilterAsync<Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter>() Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext<Microsoft.AspNetCore.Mvc.Filters.IResultFilter, Microsoft.AspNetCore.Mvc.Filters.IAsyncResultFilter>(ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.State next, ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters() Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.State next, ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeNextResourceFilter() Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.State next, ref Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeAsync() Unknown
Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory.CreateRequestDelegate.AnonymousMethod__0(Microsoft.AspNetCore.Http.HttpContext context) Unknown
Microsoft.AspNetCore.Routing.dll!Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown
Microsoft.AspNetCore.Routing.dll!Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown
Microsoft.AspNetCore.Diagnostics.dll!Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) Unknown
Microsoft.AspNetCore.HostFiltering.dll!Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) Unknown
Microsoft.AspNetCore.Hosting.dll!Microsoft.AspNetCore.Hosting.HostingApplication.ProcessRequestAsync(Microsoft.AspNetCore.Hosting.HostingApplication.Context context) Unknown
Microsoft.AspNetCore.Server.IIS.dll!Microsoft.AspNetCore.Server.IIS.Core.IISHttpContextOfT<Microsoft.AspNetCore.Hosting.HostingApplication.Context>.ProcessRequestAsync() Unknown
Microsoft.AspNetCore.Server.IIS.dll!Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.HandleRequest() Unknown
Microsoft.AspNetCore.Server.IIS.dll!Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.Execute() Unknown
System.Private.CoreLib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() Unknown
System.Private.CoreLib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() Unknown
Ад пуст, все бесы здесь.
Re[2]: Razor partial page vs model
От:
Codealot
Дата: 07.12.20 05:44
Оценка:
Здравствуйте, varenikAA, Вы писали:
AA>Кажется понял, это все разор. Если так:
AA>AA> @await Html.PartialAsync("_PartPage", model )
Error CS0103 The name 'model' does not exist in the current context AspNet50WebAppEmpty D:\Projects.Experiments\Temp\AspNet50WebAppEmpty\AspNet50WebAppEmpty\Pages\Index.cshtml 9 Active
Ад пуст, все бесы здесь.
Re[3]: Razor partial page vs model
Здравствуйте, Codealot, Вы писали:
C>C>Error CS0103 The name 'model' does not exist in the current context AspNet50WebAppEmpty D:\Projects.Experiments\Temp\AspNet50WebAppEmpty\AspNet50WebAppEmpty\Pages\Index.cshtml 9 Active
Ну, хз, вот это рабочий код(core 3.1):
<partial name="_Packets" model="@Model.Packets" />
в Packets у меня класс со св-вами.
Через хэлпер не пробовал.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Razor partial page vs model
Здравствуйте, Codealot, Вы писали:
C>C>@page
C>@model AspNet50WebAppEmpty.Pages._PartPageModel
C>@{
Удали из представления директиву и OnGet подозрителен для частичного. Это все таки метод страницы.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Razor partial page vs model
От:
Codealot
Дата: 07.12.20 06:10
Оценка:
Здравствуйте, varenikAA, Вы писали:
AA>AA><partial name="_Packets" model="@Model.Packets" />
AA>
Если верить документации, то должно быть однофигственно. Но как ни странно, вариант
<partial name="_BasePage" model="@Model" />
работает.
Ад пуст, все бесы здесь.
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить