为什么我的视图 向控制器返回 id 的空值

本文关键字:id 空值 返回 控制器 我的 视图 为什么 | 更新日期: 2023-09-27 18:34:44

这是我想要返回 Id

的观点
<table border="1">
    <tr>
        <td> Id </td>
        <td>  Name  </td>
        <td>  Age </td>
        <td> Date Of Joining  </td>
        <td>  Address  </td>
        <td>  Department  </td>
        <td> Action  </td>
    </tr>
 @foreach (var nn in Model){
    <tr>
        <td> @nn.Staff_Id </td>
        <td> @nn.Staff_Name </td>
        <td> @nn.Age </td>
        <td> @nn.DO_Joining </td>
        <td> @nn.Address </td>
        <td> @nn.Deptt </td>
        <td> @Html.ActionLink("Edit", "EditStaff", "Home", new {id= nn.Staff_Id })  |   @Html.ActionLink("Remove", "RemoveStaff", "Home", new {id= nn.Staff_Id })</td> 
    </tr>

}这是 id 将作为性能计传递到的控制器

[HttpGet]
    public ActionResult EditStaff(int id)
    {
        Database1Entities db = new Database1Entities();
        var Staff = db.TblStaffs.Where(m => m.Staff_Id == id).ToList();
        return View(Staff);
    }
    [HttpPost]
    public ActionResult EditStaff(TblStaff obj)
    {
        return View();
    }

这是首次出现的动作溃败创建

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Creat", id = UrlParameter.Optional }

然后我在这个视图中有一个指向 ShowStaff 控制器的链接

@Html.ActionLink("Show All Staff", "ShowStaff")

我已经将id传递给控制器EditStaff,但是当我运行项目并单击任何工作人员面前的链接编辑时,它给了我这样的错误

参数字典包含不可为空类型"System.Int32"的参数"idd"的空条目,用于"MvcApplication1.Controllers.HomeController"中的方法"System.Web.Mvc.ActionResult EditStaff(Int32("。可选参数必须是引用类型、可为 null 的类型或声明为可选参数。

我已经花了几天时间,但无法修复它。在这个问题上,请帮助我的任何机构。

为什么我的视图 向控制器返回 id 的空值

@Html.ActionLink("Edit", "EditStaff", "Home", new {id= nn.Staff_Id }, null)

试试这个动作链接的代码。
如果您在操作链接中提供 4 个参数,则第 3 个参数用于routeValues,第 4 个参数htmlAttributes
您需要传递 5 个参数。第 5 个参数nullhtmlAttributes 。问候

您的问题是您正在传递参数 id 但控制器正在寻找idd

这:

@Html.ActionLink("Edit", "EditStaff", "Home", new {id= nn.Staff_Id })

应该是这样的:

@Html.ActionLink("Edit", "EditStaff", "Home", new {idd= nn.Staff_Id })

通过在Taswar的帮助下实现此代码解决了我的问题,很多

[HttpGet]
    public ActionResult EditStaff(int id)
    {
        Database1Entities db = new Database1Entities();
        var Staff = db.TblStaffs.Where(m => m.Staff_Id == id).FirstOrDefault();
        return View(Staff);
    }