繁体   English   中英

MVC4部分视图错误“对象引用未设置为对象的实例。”

[英]MVC4 Partial View Error “Object reference not set to an instance of an object.”

首先,我是MVC的完整入门者。 如果某个布尔字段为true,如何在部分视图的事件表中显示数据库中的数据。

这是我的部分观点:

@model IEnumerable<TheBigEvent.Models.RecommendedEvents>
<table>
 <tr>

  <td>  
     @Html.DisplayNameFor(model => model.Event_Name)
      </td>
      <td>
      @Html.DisplayNameFor(model => model.Event_Date)

   </td>
  </tr>

 <tr>   

      @foreach (var item in Model) {

          <td>  

    @Html.DisplayFor(modelItem => item.Event_Name)
</td>
     <td>
    @Html.DisplayFor(modelItem => item.Event_Date)
         </td>
     }

 </tr>                          
   </table>

这是我的控制器

public ActionResult _RecommendedEvents()

    {


        var recommendedevents = from Events in db.Database1
                                select Events;

        recommendedevents = recommendedevents.Where(s => s.Recommended.Equals(true));

        return PartialView("_RecommendEvents", recommendedevents);


    }

和显示偏视图的代码

 @Html.Partial("_RecommmndedEvents")

这是我收到的错误

在此处输入图片说明

[编辑]

 public ActionResult _RecommendedEvents(RecommendedEvents model)

    {

        model = new RecommendedEvents();


        var recommendedevents = from Events in db.Database1
                                select Events;


        recommendedevents = recommendedevents.Where(s => s.Recommended.Equals(true));








        return View(model);


    }
@{
        Html.RenderAction("view","controller")
}

这将转到给定的控制器和必须返回具有正确模型的局部视图的动作

对于我来说,未设置为对象实例的对象引用一直是未初始化的列表。 尝试在设置推荐事件之前对其进行初始化。 就像是

List<Events> recommendedevents = new List<Events>();

用任何类型替换事件。

Html.Partial中的第一个参数是部分名称,而不是方法调用。 您需要通过视图模型将模型传递给视图,然后将其传递给局部视图

@Html.Partial("_RecommendedEvents", Model.Events)

或通过ajax调用加载局部代码。 查看示例的答案。 如何使用AJAX渲染部分表单元素

@HTML.Partial()函数不会通过任何控制器动作来呈现,它只是在文档中的该位置呈现View的HTML。 而且您没有将IEnumerable<TheBigEvent.Models.RecommendedEvents>传递给该局部视图,因此当该局部渲染时, Model为null。

IEnumerable<TheBigEvent.Models.RecommendedEvents>对象放入主页的视图模型中,或者放在ViewBag中的某个对象上,并在调用Partial方法时将其传递给部分视图:

@HTML.Partial("_RecommmndedEvents", ViewBag.RecommendedEvents)

在顶层页面的控制器操作中,设置ViewBag.RecommendedEvents就像在上面的控制器代码中实例化它的方式一样。

该错误表示您的模型为null,在使用Ajax时使用PartialView() ,否则可以编写如下代码:

return View("_RecommendEvents", recommendedevents);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM