gpt4 book ai didi

asp.net-mvc - 删除 View 正在向 Controller 返回空对象

转载 作者:行者123 更新时间:2023-12-03 17:42:32 24 4
gpt4 key购买 nike

我是 ASP.NET MVC 的新手,我正在尝试开发一个简单的应用程序来实现 CRUD 操作,但是当返回到 Controller 时,删除操作遇到了一个奇怪的问题,因为它返回一个空对象,不允许操作来完成。我将在下面展示模型、 Controller 及其各自 View 的代码。

模型:

public class Biblioteca
{
public int IdBiblioteca { get; set; }
public string Nome { get; set; }
public string Endereco { get; set; }
}

Controller
public class BibliotecaController : Controller
{
ADAO dao = DAOFactory.GetInstance(DAOFactory.DAOType.Biblioteca);

[HttpGet]
public ActionResult DeleteLibrary(int id)
{
return View(dao.Select(id));
}

[HttpPost]
public ActionResult DeleteLibrary(Biblioteca b)
{
dao.Delete(b);
return RedirectToAction("Index");
}
}

查看删除库
@model BibliotecaWebApp.Models.Biblioteca

<h2>DeleteLibrary</h2>
<h3>Are you sure you want to delete this?</h3>
<div>
<h4>Biblioteca</h4>
<hr />
<dl class="dl-horizontal">
<dt>@Html.DisplayNameFor(model => model.IdBiblioteca)</dt>
<dd>@Html.DisplayFor(model => model.IdBiblioteca)</dd>
<dt>@Html.DisplayNameFor(model => model.Nome)</dt>
<dd>@Html.DisplayFor(model => model.Nome)</dd>
<dt>@Html.DisplayNameFor(model => model.Endereco)</dt>
<dd>@Html.DisplayFor(model => model.Endereco)</dd>
</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>

正如我们在 Controller 代码段中看到的,每个操作都有两个 Controller :一个 [HttpGet],它检索要在确认 View 中显示的数据,然后才能删除 [HttpPost]。 [HttpPost]DeleteLibrary 中出现问题,一旦它从 View 中获取空的 Biblioteca 对象以执行排除。下面有两个屏幕截图可以更好地展示这一点:

[HttpGet] DeleteLibrary 正常工作:

enter image description here

但是当用户点击Delete按钮时,在[HttpPost]DeleteLibrary方法上收到一个空对象,如下图:

enter image description here

我的问题是:为什么返回的对象在传递给 View 时为 null?可能是什么问题?

最佳答案

用这个

**@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.HiddenFor(m => m.IdBiblioteca)
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}**


而不是这个

**@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>
}**

关于asp.net-mvc - 删除 View 正在向 Controller 返回空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32736525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com