Отправка параметров в Razor Page RCL NET Core - PullRequest
0 голосов
/ 08 января 2020

Здравствуйте и заранее благодарю за любую помощь, которую вы можете мне оказать.

Я работаю с. NET Core 3.1

У меня есть библиотека классов Razor с Razor Pages.

Это частичные страницы, которые также включены в представления веб-проекта MVC. NET Core 3.1

Бритвенные страницы RCL находятся в папке "\ Pages" в вложенная папка "\ Shares".

Я загружаю отдельные страницы следующим образом: <partial name="_SpatialTest" />

Он работает правильно.

Но мне нужно отправить несколько параметров некоторым Razor Pages из RCL из представлений, которые включают в себя, и возникает моя проблема, поскольку, поскольку она не является гиперссылкой, я не могу добавить параметры в маршрутизации, в теле или в строке запроса ..., как предлагается здесь: https://www.learnrazorpages.com/razor-pages/routing

Я пробовал это как представление данных, как модель и данные, и это дает мне несколько ошибок, но это никогда не работает, как предложено здесь: https://www.learnrazorpages.com/razor-pages/model-binding

Я настроил это так:

Razor Page в RCL ->

* 1 029 * cs html .cs:
namespace SpatialUnitsRclTest.Pages.Shared
{
    public class _SpatialTestModel : PageModel
    {
        [BindProperty(SupportsGet = true)]
        public string NameTest { get; set; }

        public void OnGet(send parameters)
        {
            // do something with the parameters and create the Razor Page ViewModel ...
        }
    }
}

cs html:

@page
@model SpatialUnitsRclTest.Pages.Shared._SpatialTestModel
<h5>Test RCL partial @Model.NameTest</h5>
<div id="mapid" style="min-height: 180px;"></div>

Представление (cs html) в проекте Web MVC ->

<div style="height: 200px; width: 200px;">
    @{ var partialModel = new SpatialUnitsRclTest.Pages.Shared._SpatialTestModel { NameTest = "pruebaaaaaaaaaaa" }; }
    <partial name="_SpatialTest" model="@partialModel"  />
</div>

Ошибка:

NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта. AspNetCore.Pages_Shared__SpatialTest.get_Model () AspNetCore.Pages_Shared__SpatialTest.ExecuteAsyn c () в _SpatialTest.cshtml + тестирование RCL, частичное @ Model.NameTest Представление Microsoft.AspNetCore. * 10azRage.Rage. контекст) Microsoft.AspNetCore. Mvc .Razor.RazorView.RenderPageAsyn c (страница IRazorPage, контекст ViewContext, bool invokeViewStarts) Microsoft.AspNetCore. Mvc .Razor.RazorView.RenderAsyn c (контекст ViewContext) Microsoft. AspNetCore. Mvc .TagHelpers.PartialTagHelper.RenderPartialViewAsyn c (модуль записи TextWriter, объектная модель, представление IView) Microsoft.AspNetCore. Mvc .TagHelpers.PartialTagHelper.ProcessAsyn c (выходной тег TagTelperHerperTore). .Razor.Runtime.TagHelpers.TagHelperRunner.g__Awaited | 0_0 (Задача, TagHelperExecutionContext executeContext, int i, int count) AspNetCore.Views_Home_Index.ExecuteAsyn c () в Index.cshtml + 10 .az. RazorView.RenderPa geCoreAsyn c (страница IRazorPage, контекст ViewContext) Microsoft.AspNetCore. Mvc .Razor.RazorView.RenderPageAsyn c (страница IRazorPage, контекст ViewContext, bool invokeViewStarts) Microsoft.AspNetCore. Mvc .RazorR. c (контекст ViewContext) Microsoft.AspNetCore. Mvc .ViewFeatures.ViewExecutor.ExecuteAsyn c (ViewContext viewContext, строка contentType, Nullable statusCode) Microsoft.AspNetCore. Mvc .ViewFeatures.ViewExecutor.ExecuynAs ViewContext viewContext, строковый contentType, Nullable statusCode) Microsoft.AspNetCore. Mvc .ViewFeatures.ViewExecutor.ExecuteAsyn c (ActionContext actionContext, представление IView, ViewDataDictionary viewData, ITempDataDictionary tempData * Microsoft status.79C). * .ViewFeatures.ViewResultExecutor.ExecuteAsyn c (контекст ActionContext, результат ViewResult) Microsoft.AspNetCore. Mvc .ViewResult.ExecuteResultAsyn c (контекст ActionContext) Microsoft.AspNetCore. Mvc .Infrastructure .ResourceInvoker.g__Awaited | 29_0 (ResourceInvoker invoker, Task LastTask, State next, Область действия, состояние объекта, bool isCompleted) Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.Rethrow (ResultExecutedContext *ealed контекст) Microsoft. 1085. Infrastructure.ResourceInvoker.ResultNext (ref State next, ref Область действия, ref object object, ref bool isCompleted) Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.InvokeResultFilters () Microsoft.AspNetCore. Mvc .Infrastructure.Resource | 24_0 (ResourceInvoker invoker, Task lastTask, State next, Область действия, состояние объекта, bool isCompleted) Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.Rethrow (контекст ResourceExecutedContextSealed) . Mvc .Infrastructure.ResourceInvoker.InvokeFilterPipelineAsyn c () Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.g__Awaited | 17_0 (активатор ResourceInvoker, задача задачи, IDisposable scope) 6_0 (конечная точка конечной точки, запрос на задание задачи, регистратор ILogger) рука?

Спасибо большое. Привет.

1 Ответ

0 голосов
/ 10 января 2020

Если вы хотите визуализировать частичное представление (содержащееся в вашем RCL) с указанными данными модели на странице просмотра проекта MVC, обратитесь к следующему примеру.

Просмотр бритвы _SpatialTest1 (в RCL)

@model RclTest.Models.SpatialTestModel
@{
    //code logic here
}

<h1>_SpatialTest1</h1>
<h5>Test RCL partial @Model.NameTest</h5> 

Примечание: создайте Razor View _SpatialTest1 в вашем RCL, а не Страница бритвы .

Класс SpatialTestModel (в RCL)

public class SpatialTestModel
{
    public string NameTest { get; set; }
}

Просмотр страницы (в MVC проекте)

@{
    var partialModel = new RclTest.Models.SpatialTestModel { NameTest = "pruebaaaaaaaaaaa" };
}

<partial name="_SpatialTest1" model="@partialModel" />

Результат теста

enter image description here

...