【问题标题】:PartialView model is empty returns null referencePartialView 模型为空返回空引用
【发布时间】:2013-10-02 00:55:16
【问题描述】:

我正在通过控制器上的 Action 呈现 PartialView。

这是向部分发送一个模型,然后为部分进入的每个父项填充一个子列表。

一些父对象没有子对象。

我需要从部分模型中捕获一个 Id 以将子列表链接到 Accordion 控件。

子模型为空时如何防止空引用异常?

有什么方法可以直接从 Action 发送 ID?

当前尝试...

@using BootstrapSupport
@model IEnumerable<WhatWorks.ViewModels.FamilyListViewModel>

@{ if (string.IsNullOrEmpty(Model.FirstOrDefault().familyId.ToString()))
   {
     do something...
   }
   else
   {
    int modelIndex = Model.FirstOrDefault().familyId; 

控制器动作

    public ActionResult Index(int Id)
    {            
        var model = GetDisplay(Id).OrderBy(i => i.dob).AsEnumerable();            
        return PartialView("_family", model);
    }

主视图

var family = model.GetIdValue();
<div class="accordion" id="@Html.Raw("accordion")@family.Values.FirstOrDefault()@Html.Raw("_b")">
@Html.Action("Index", "Family", new { Id = family["Id"] })
</div>

视图模型

public partial class FamilyListViewModel
{
    public int Id { get; set; }
    public int familyId { get; set; }
    public string name { get; set; }
etc...
}

【问题讨论】:

  • 你能发表你的观点吗?我想看看你是怎么称呼部分的。
  • 您还介意发布您的模型吗?在没有看到他们的情况下试图弄清楚这一点有点令人困惑。
  • @JohnH 我已经添加了 ViewModel 和调用部分的主视图中的代码。该错误是由于某些部分视图的 ViewModel 为空造成的。

标签: c# asp.net-mvc partial-views


【解决方案1】:

然后这样做:

@{ if (Model.Count() >0 )
   {
     do something...
   }

【讨论】:

  • 是的。模型正确传递给局部。我可以让部分显示子子列表,但如果不捕获与每个唯一子集相关的部分中的 Id,我无法将列表放入手风琴控件。如果模型是空的,我只需要在测试空模型后退出部分 - 这就是我正在努力的地方......
猜你喜欢
  • 1970-01-01
  • 2013-08-11
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 2021-12-14
相关资源
最近更新 更多