【发布时间】:2017-03-02 06:16:12
【问题描述】:
我正在使用 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; }
学生名单控制器
udb _db = new udb();
public ActionResult Index([Bind(Prefix="klsasaid")] int klasaid)
{
var studentlist = _db.Seuni.Find(klasaid);
if (studentlist != null)
{
return View();
}
return HttpNotFound();
}
学生列表查看索引
@model Unilast.Models.klasa
<h2>List for @Model.emriklases </h2>
@Html.Partial("_partial1", @Model.students);
<p>@Html.ActionLink("Create New", "Create")</p>
_partial1 视图如下:
@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)
延迟加载实体不起作用。
参数字典包含“Unilast.Controllers.StudentListController”中方法“System.Web.Mvc.ActionResult Index(Int32)”的不可为空类型“System.Int32”的参数“klasaid”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。 参数名称:参数
这是它显示的错误 视图是
【问题讨论】:
-
您甚至没有显示调用该方法的代码。错误是不言自明的 - 您没有传递
klasaid的值 -
@StephenMuecke @Html.ActionLink("StudentList", "Index","StudentList", new { id=item.klasaid },null) |这是来自 klasaController 索引的链接
-
您还没有显示包含调用
StudentListController的Index()方法或生成该视图的控制器方法的链接的视图(以及模型的填充方式) -
当您访问
ActionResult Index([Bind(Prefix="klsasaid")] int klasaid)时出现错误,因此请显示您的访问代码,从您调用索引方法的位置使用klasaid -
@StephenMuecke 是的,我拥有的是 StudentList 视图,就在上面的控制器索引下方。但是当他做同样的事情并且工作时,我已经看到了一个复数视图教程。这里:[链接]app.pluralsight.com/…
标签: c# asp.net .net asp.net-mvc entity-framework