C# Asp.net延迟加载相关实体
我正在使用Asp.net vs 2012我的课程是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; } }
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();
}
}