MVC 4脚手架删除问题与ID

本文关键字:ID 问题 删除 脚手架 MVC | 更新日期: 2023-09-27 17:51:07

我为删除创建了脚手架删除视图,但它不起作用。当调试时,我发现它没有将记录的正确ID传递给控制器。它总是传递0作为ID,结果是一个异常(system。用户代码未处理NullReferenceException消息=对象引用未设置为对象的实例)。

但是在视图提交按钮中显示了正确的URL和正确的ID。

控制器:

    public ActionResult DeleteSubject(int id)
    {
        try
        {
            // returns the View
        }
        catch (Exception e)
        {
            // Handle and log  the exception                
        }   
    }

    [HttpPost]
    public ActionResult DeleteSubject(SubjectModel subject)
    {
        try
        {
            // Call methods for delete
        }
        catch (Exception e)
        {
            // Handle and log  the exception 
        }  
    }

视图:

   @model LMS.Models.SubjectModel
   // ... form elements go here
   @using (Html.BeginForm()) { 
      <input type="submit" value="Delete" />
   }

当调试带有断点的[HttpPost]方法时,该方法作为参数的对象似乎没有初始化值。ID字段显示0,其他字段显示null。

重新创建视图,重写控制器方法,更改属性等。但我还是明白这个问题。谢谢你的建议。

(BTW创建脚手架视图创建,列表和编辑。它们工作得很好

谢谢,

Chatur

MVC 4脚手架删除问题与ID

每当我发布到一个表单时,我注意到id="form"总是有用的。

@using (Html.BeginForm("Create", "RunLogEntry", FormMethod.Post, new { id = "form", enctype = "multipart/form-data" }))
    {

在MVC中,Id参数的默认方式是在URL上传递,而不是在body上,这就是为什么它是空的。

修改httpPost delete为;

public ActionResult DeleteSubject(int id, SubjectModel subject)

我还注意到// ... form elements go here在表单的外面我应该在里面