C# Asp.net延迟加载相关实体

C# Asp.net延迟加载相关实体,c#,asp.net,.net,asp.net-mvc,entity-framework,C#,Asp.net,.net,Asp.net Mvc,Entity Framework,我正在使用Asp.net vs 2012我的课程是 public class klasa { [Key] public int klasaid { get; set; } public string emriklases { get; set; } public string vendodhja { get; set; } public virtual ICollection<student> students { get; set; } }

我正在使用Asp.net vs 2012我的课程是

public class klasa
{
    [Key]
    public int klasaid { get; set; }
    public string emriklases { get; set; }
    public string vendodhja { get; set; }
    public virtual ICollection<student> students { get; set; }
}
public class student
{
    [Key]
    public int studentid { get; set; }
    public string emristudent { get; set; }
    public int nota { get; set; }
    public int klasaid { get; set; }
    [ForeignKey("klasaid")]
    public klasa Klasa { get; set; }
学生列表视图索引

@model Unilast.Models.klasa
<h2>List for @Model.emriklases </h2>
@Html.Partial("_partial1", @Model.students);
<p>@Html.ActionLink("Create New", "Create")</p>
@model Unilast.Models.klasa
@Model.emriklases的列表
@Html.Partial(“_partial1”,@Model.students);
@ActionLink(“新建”、“创建”)

_第1部分视图如下所示:

@model IEnumerable<Unilast.Models.student>

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.emristudent)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.nota)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.klasaid)
@model IEnumerable
@DisplayNameFor(model=>model.emristudent)
@DisplayNameFor(model=>model.nota)
@DisplayNameFor(model=>model.klasay)
延迟加载实体不起作用

参数字典包含“Unilast.Controllers.StudentListController”中方法“System.Web.Mvc.ActionResult Index(Int32)”的不可为空类型“System.Int32”的参数“Klassaid”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。 参数名称:参数

这就是它显示的错误
视图是学生课堂上的

[ForeignKey(“klasaid”)]需要放在声明上方。您已将其放置在下面。

像这样修改控制器

    public ActionResult Index(int? id)
    {

        if (! id.HasValue || id.Value < 1 )
        {
            return HttpNotFound();
        }

        List<String> studentList = new List<string>();
        var klasa = _db.Keuni.FirstOrDefault(x => x.klasaid == id.Value);
        if (studentList != null)
        {
           return View(klasa);
        }
        else
        {
            return HttpNotFound();
        }
    }
public ActionResult索引(int?id)
{
如果(!id.HasValue | | id.Value<1)
{
返回HttpNotFound();
}
List studentList=新列表();
var klasa=_db.Keuni.FirstOrDefault(x=>x.klasayd==id.Value);
if(studentList!=null)
{
返回视图(klasa);
}
其他的
{
返回HttpNotFound();
}
}

您甚至没有显示调用该方法的代码。错误是不言自明的-您没有传递
klasayd
@StephenMuecke@Html.ActionLink(“StudentList”,“Index”,“StudentList”,new{id=item.klasayd},null)|这是来自klasacontrollery索引的链接您还没有显示包含调用
索引()的链接的视图
StudentListController的方法或生成该视图(以及模型的填充方式)的控制器方法在u访问ActionResult索引([Bind(Prefix=“klsasaid”)]时出错因此,在调用index方法的地方显示访问代码,使用
klasayd
@StephenMuecke是的,我看到的是StudentList视图,就在上面控制器索引的下方。但是我在pluralsight中看到了一个教程,当他做同样的事情并工作时。这里:[link]我的班级结构没有问题。它很好。我不知道为什么我不能展示在那个班注册的学生
    public ActionResult Index(int? id)
    {

        if (! id.HasValue || id.Value < 1 )
        {
            return HttpNotFound();
        }

        List<String> studentList = new List<string>();
        var klasa = _db.Keuni.FirstOrDefault(x => x.klasaid == id.Value);
        if (studentList != null)
        {
           return View(klasa);
        }
        else
        {
            return HttpNotFound();
        }
    }