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
每当我发布到一个表单时,我注意到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
在表单的外面我应该在里面