Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数字典包含参数'_id';不可为空的类型';System.Int32';_C#_Html_Razor_Controller_Asp.net Mvc 5 - Fatal编程技术网

C# 参数字典包含参数'_id';不可为空的类型';System.Int32';

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&

(这是一个简单的电话簿项目)我想删除列表中的一行(笔记本中的联系人),当用户按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>
    <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好运。我鼓励您尝试这里的教程。