【发布时间】:2020-06-08 07:26:18
【问题描述】:
首先,我是业余爱好者,还在学习 MVC。 我正在制作简单的应用程序,例如地址簿。
我通过实体框架将我的项目与带有一张表的 sql 数据库连接起来。 SQL 表中的第一行是 ID,它是主键和标识字段。当我自动生成详细信息视图并尝试运行它时,出现此错误:
“参数字典包含“Akvizicije_App_1_6.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult Details(Int32)”的不可为空类型“System.Int32”的参数“id”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。 参数名称:参数"
public ActionResult Details(int id)
{
Contacts contact = (from k in Context.Contacts
where k.idContact == id
select k).Single();
return View(contact);
}
我知道有 int id 的参数,它不能为空,因为它是主键和标识字段。 但我不知道如何解决这个问题。如果有人可以帮助我。 我将非常感谢。 :)
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<div>
<h4>Kontakti</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.Zupanija)
</dt>
<dd>
@Html.DisplayFor(model => model.Zupanija)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Opcina)
</dt>
<dd>
@Html.DisplayFor(model => model.Opcina)
</dd>
<dt>
@Html.DisplayNameFor(model => model.PostanskiBroj)
</dt>
<dd>
@Html.DisplayFor(model => model.PostanskiBroj)
</dd>
<dt>
@Html.DisplayNameFor(model => model.NazivNaselja)
</dt>
<dd>
@Html.DisplayFor(model => model.NazivNaselja)
</dd>
<dt>
@Html.DisplayNameFor(model => model.NazivUlice)
</dt>
<dd>
@Html.DisplayFor(model => model.NazivUlice)
</dd>
<dt>
@Html.DisplayNameFor(model => model.KucniBroj)
</dt>
<dd>
@Html.DisplayFor(model => model.KucniBroj)
</dd>
<dt>
@Html.DisplayNameFor(model => model.kcbr)
</dt>
<dd>
@Html.DisplayFor(model => model.kcbr)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Aktivan)
</dt>
<dd>
@Html.DisplayFor(model => model.Aktivan)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ImeOsobe)
</dt>
<dd>
@Html.DisplayFor(model => model.ImeOsobe)
</dd>
<dt>
@Html.DisplayNameFor(model => model.PrezimeOsobe)
</dt>
<dd>
@Html.DisplayFor(model => model.PrezimeOsobe)
</dd>
<dt>
@Html.DisplayNameFor(model => model.KontaktBroj)
</dt>
<dd>
@Html.DisplayFor(model => model.KontaktBroj)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Email)
</dt>
<dd>
@Html.DisplayFor(model => model.Email)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Komentar)
</dt>
<dd>
@Html.DisplayFor(model => model.Komentar)
</dd>
</dl>
</div>
<p>
@Html.ActionLink("Edit", "Edit", new { id = Model.idKontakt }) |
@Html.ActionLink("Back to List", "Index")
</p>```
Its not on english but you will understand.
【问题讨论】:
-
当我手动输入 /Details/1 时它可以工作,但我如何解决它会自动运行。由于我创建了身份字段 ID,但它会自动进行。
-
Action 被称为“public ActionResult Details(int id)” 它是从视图中调用的。每当我转到正确的 ID 号的详细信息时,我如何才能自动生成它
-
是的。我会更新我的上篇文章。
标签: sql asp.net-mvc model-view-controller