C# 参数字典包含参数'_id';不可为空的类型';System.Int32';
(这是一个简单的电话簿项目)我想删除列表中的一行(笔记本中的联系人),当用户按delete按钮时,我想显示它的信息并得到用户的确认 这是查看代码C# 参数字典包含参数'_id';不可为空的类型';System.Int32';,c#,html,razor,controller,asp.net-mvc-5,C#,Html,Razor,Controller,Asp.net Mvc 5,(这是一个简单的电话簿项目)我想删除列表中的一行(笔记本中的联系人),当用户按delete按钮时,我想显示它的信息并得到用户的确认 这是查看代码 @model Project1.Models.EF_Model.Phone_book @{ ViewBag.Title = "Delete"; } <h2>Delete</h2> <h3>Are you sure you want to delete this?</h3> <div&
@model Project1.Models.EF_Model.Phone_book
@{
ViewBag.Title = "Delete";
}
<h2>Delete</h2>
<h3>Are you sure you want to delete this?</h3>
<div>
<h4>Product</h4>
<hr />
<dl class="dl-horizontal">
<tr>
<dt>
@Html.DisplayNameFor(model => model.First_Name)
</dt>
<td>
@Html.DisplayFor(model => model.First_Name)
</td>
<dt>
@Html.DisplayNameFor(model => model.Last_Name)
</dt>
<dd>
@Html.DisplayFor(model => model.Last_Name)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Number)
</dt>
<dd>
@Html.DisplayFor(model => model.Number)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Email)
</dt>
<dd>
@Html.DisplayFor(model => model.Email)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Address)
</dt>
<dd>
@Html.DisplayFor(model => model.Address)
</dd>
</tr>
</dl>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}
</div>
如何在确认视图中显示所选数据
当我按下按钮删除它时
我也收到了这个错误
参数字典包含“Project1.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult Delete(Int32)”的不可为空类型“System.Int32”的参数“\u id”的空条目。可选参数必须是引用类型、可为null的类型或声明为可选参数。
参数名称:参数
当我按下按钮删除它时,我猜它会返回空值,或者我必须使用routconfig做一些事情,请帮助我我正在使用它2天(你应该知道我刚刚开始学习mvc)你正在进行表单提交,并且你的操作标记为HttpPost,因此,mvc将返回一个Project1.Models.EF_Model.Phone_book对象 视图中没有任何内容告诉控制器它应该获取一个_id参数,因此当Mvc绑定这些参数时,它不会将任何内容绑定到_id
要解决此问题,请参阅答案,以获取将_id传递回控制器的方法。您正在执行表单提交,并且您的操作被标记为HttpPost,因此返回mvc的是Project1.Models.EF_Model.Phone_book对象 视图中没有任何内容告诉控制器它应该获取一个_id参数,因此当Mvc绑定这些参数时,它不会将任何内容绑定到_id
要解决此问题,请参阅答案,以获取将_id传递回控制器的方法。MVC告诉您,您有一个方法,该方法接受非空参数
int _id
,但未提供任何值。这意味着当数据发送到web服务器时,表单集合不包含名为\u id
的值
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-actions no-color">
@Html.HiddenFor(model => model._id)
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}
当您以HTML格式提交表单时,默认情况下发送到服务器的唯一数据是元素。因此,为了将\u id
值发送到服务器,您可以在表单中创建一个名为\u id
的元素
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-actions no-color">
@Html.HiddenFor(model => model._id)
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}
MVC具有帮助器函数,可以根据视图模型为您创建输入。
@Html.HiddenFor(model=>model.\u id)
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model=>model.\u id)
|
@ActionLink(“返回列表”、“索引”)
}
祝你学习MVC好运。我鼓励您尝试这里的教程。
MVC告诉您,您有一个方法,它接受一个非空参数
int\u id
,但没有提供任何值。这意味着当数据发送到web服务器时,表单集合不包含名为\u id
的值
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-actions no-color">
@Html.HiddenFor(model => model._id)
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}
当您以HTML格式提交表单时,默认情况下发送到服务器的唯一数据是元素。因此,为了将\u id
值发送到服务器,您可以在表单中创建一个名为\u id
的元素
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-actions no-color">
@Html.HiddenFor(model => model._id)
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}
MVC具有帮助器函数,可以根据视图模型为您创建输入。
@Html.HiddenFor(model=>model.\u id)
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model=>model.\u id)
|
@ActionLink(“返回列表”、“索引”)
}
祝你学习MVC好运。我鼓励您尝试这里的教程。