我正在使用asp.net core 2.1。
我的主页位于“页面”文件夹下,而我的局部视图_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()
任何帮助将不胜感激。
答案 0 :(得分:2)
我通过从部分视图中删除“ @page”解决了我的问题。
答案 1 :(得分:0)
部分视图必须是视图页面,而不是剃刀页面。 这是一个演示工作: 主页:
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>
Student1.class:
public class Student1
{
public string Name { get; set; }
}