关于asp.net mvc:Partial Views in another Controllers View MVC5

Partial Views in another Controllers View MVC5

我刚开始在 mvc 中使用局部视图,由于某种原因无法正常工作

Notes.cshtml

1
2
3
4
5
6
7
8
9
10
11
@model IEnumerable<SI2.Models.DashboardNote>

@foreach (var item in Model)
{
   
       
            <p>@Html.DisplayFor(modelItem => item.Information)</p><br />
            <p>@Html.DisplayFor(modelItem => item.DateCreate)</p>
       
   
}

这是我试图在另一个控制器视图中调用局部视图的地方

首页/Index.cshtml

1
2
3
            <i class="fa fc-agenda-view">   Notes
           
                @Html.Partial("~/Views/DashboardNotes/Notes.cshtml")

笔记控制器

1
2
3
4
public ActionResult Notes()
{
     return View(db.DashboardNotes.ToList());
}

每次我尝试将 Notes.cshtml 作为局部视图调用时,我都会收到 System.NullReferenceException,其中"对象引用未设置为对象的实例",但如果我正常运行视图,它会完美运行。控制器的两种型号之间也没有关系。

感谢您的帮助:)


下面的代码将呈现没有注释的部分,因此是空引用,因为你有一个用于空注释的 foreach。

1
@Html.Partial("~/Views/DashboardNotes/Notes.cshtml")

Html.Partial 中没有触发对服务器的调用的机制。如果您以现在的方式加载它,您将不得不在您的部分中执行某种类型的 ajax 调用来获取注释。解决此问题的最简单方法是在您的父视图或页面中返回注释并将模型传递给您的部分,见下文:

1
2
3
4
5
6
7
8
@model MainViewWithNotes


   
       
            <i class="fa fc-agenda-view">   Notes
           
                @Html.Partial("~/Views/DashboardNotes/Notes.cshtml",MainViewWithNotes.Notes)