0

您好,提前感谢您提供的任何帮助。

我正在使用 .NET Core 3.1

我有一个带有 Razor 页面的 Razor 类库。

它们是包含在 Web MVC 项目的视图中的部分页面,也是 .NET Core 3.1

RCL 的剃须刀页面位于“\Shares”子文件夹中的“\Pages”文件夹内。

我像这样加载部分页面:<partial name="_SpatialTest" />

它工作正常。

但是我需要从包含的视图中向 RCL 的某些 Razor 页面发送几个参数,这就是我的问题,因为它不是超链接,我无法在路由或正文中添加参数,或者在查询字符串中...如此处建议:https ://www.learnrazorpages.com/razor-pages/routing

我已经将它作为视图数据、模型和数据进行了尝试,它给了我几个错误,但它从不工作,就像这里建议的那样:https ://www.learnrazorpages.com/razor-pages/model-binding

我已经这样设置了:

RCL 中的 Razor 页面 ->

cshtml.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 ...
        }
    }
}

cshtml:

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

在 Web MVC 项目中查看 (cshtml) ->

<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.ExecuteAsync() in _SpatialTest.cshtml + 测试 RCL 部分 @Model.NameTest Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context) Microsoft.AspNetCore.Mvc。 Razor.RazorView.RenderPageAsync(IRazorPage 页面,ViewContext 上下文,bool invokeViewStarts)Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext 上下文)Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.RenderPartialViewAsync(TextWriter 编写器,对象模型,IView 视图) Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ProcessAsync(TagHelperContext 上下文,TagHelperOutput 输出)Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner。

你能帮我个忙吗?

非常感谢。问候。

4

1 回答 1

0

如果您想在您的 MVC 项目视图页面中使用指定的模型数据呈现部分视图(包含在您的 RCL 中),请参考以下示例。

剃刀视图_SpatialTest1(在 RCL 中)

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

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

注意:在 RCL 中创建Razor View ,而不是 Razor Page_SpatialTest1

SpatialTestModel 类(在 RCL 中)

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

查看页面(在 MVC 项目中)

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

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

测试结果

在此处输入图像描述

于 2020-01-10T08:24:46.083 回答