对象引用的 MVC 4 错误

MVC 4 error for object referance

这是型号:

[Table("Person")]
public class Persons
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Gender { get; set; }
    public string Location { get; set; }
}

这是我的 DbContext 以上模型 class。

public class PersonContext : DbContext
{
    public DbSet<Persons> persons { get; set; }
}

这是我的控制器Class:

public class PersonController : Controller
{
    //
    // GET: /Person/
    public ActionResult Index(int id)
    {
        PersonContext PC = new PersonContext();
        Persons PS = PC.persons.SingleOrDefault(pr => pr.ID == id);
        return View(PS);
    }
}

这是我的观点:

'@model MVCDemo.Models.Persons

@{
ViewBag.Title = "Index";
Layout = "~/Views/_ViewStart.cshtml";
}

<h2>Index</h2>

<div>
<h4>Personal Information</h4>
<hr />
<dl class="dl-horizontal">
    <dt>
        @Html.DisplayNameFor(model => model.Name)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.Name)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.Gender)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.Gender)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.Location)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.Location)
    </dd>

    </dl>
 </div>
 <p>
@Html.ActionLink("Edit", "Edit", new { id = Model.ID }) |
@Html.ActionLink("Back to List", "Index")
</p>'

在上面的粗体区域我收到

的错误

Object reference not set to an instance of an object.

请告诉我出现此错误的原因以及解决方法。

如果找不到与给出的条件。您描述的错误最可能的原因是 Persons 的对象实例为空。

如评论中所述,此错误是因为 Persons objecte 变为空,使用空合并运算符 (??)

进行空检查
   public ActionResult Index(int id)
    {
        PersonContext PC = new PersonContext();
        Persons PS = PC.persons.SingleOrDefault(pr => pr.ID == id);
        PS = PS ?? new Persons();
        return View(PS);
    }