部分视图中的模型为空 - asp.net core razor pages

Posted

技术标签:

【中文标题】部分视图中的模型为空 - asp.net core razor pages【英文标题】:model in partial view is null - asp.net core razor pages 【发布时间】:2020-10-04 05:28:00 【问题描述】:

我正在使用 asp.net core 2.1。

我的主页位于 Pages 文件夹下,我的部分视图 _test2 位于共享文件夹中。 这是我的主页:

public class MainModel : PageModel
    
        public IRepositoryStudent irep;
        public MainModel (IRepositoryStudent _irep)
         irep = _irep;
        
        [BindProperty]
        public Student student get; set; 

        public void OnGet()
        
            student = irep.GetFirst();
        
    

这是我的 Main.cshtml

@page
@model APWeb.Pages.MainModel

<h2>Main</h2>
<partial name="_test2" model="Model.student" />

这是我的部分观点:_test2:

@page
@*
    For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@

@model Student
@ 
<h1 >@Model.Name</h1>

我在局部视图中的模型为空,我有这个错误:

NullReferenceException: Object reference not set to an instance of an object.
APWeb.Pages.Shared.Pages_Shared__test2.get_Model()

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我通过从部分视图中删除“@page”解决了我的问题。

【讨论】:

谢谢。你救了我的一天!这正是所需要的。 :)【参考方案2】:

部分视图需要是视图页面而不是剃须刀页面。 这是一个演示: 主页:

public class MainModel : PageModel
    
        [BindProperty]
        public Student1 student  get; set; 
        public void OnGet()
        
            student = new Student1  Name = "Moddy" ;
        
    

Main.cshtml:

@page
@model ModelValidation_MVC_.Pages.MainModel
@
    ViewData["Title"] = "Main";


<h1>Main</h1>
<partial name="_test2" model="Model.student" />

_test2.cshtml:

@model ModelValidation_MVC_.Models.Student1

<h1>@Model.Name</h1>

学生1.班级:

public class Student1
    
        public string Name  get; set; 
    

结果:

【讨论】:

你的代码和我的一样,唯一的不同是关键:从局部视图中删除@page。无论如何,谢谢,

以上是关于部分视图中的模型为空 - asp.net core razor pages的主要内容,如果未能解决你的问题,请参考以下文章

将模型传递给 ASP.NET Core MVC 中的视图

无法通过 ASP.NET Core 中的 JQuery ActionResult 调用加载部分视图

ASP .NET Core 5 Razor Pages:如何正确使用局部视图并验证其模型状态?

ASP.NET Core 3.1 - 将子项添加到剃刀局部视图

如何将位于应用程序部分 (DLL) 中的部分视图呈现到主 asp.net core 2.2 项目中

[十二] ASP.NET Core 中的模型绑定