Asp.net mvc Asp.net mvc删除带有AcceptVerbs的HttpVerbs.Post方法自动调用问题
我是Asp.NETMVC新手。 我有一个管理用户的应用程序。我的问题是,当我单击用户行的delete链接时,在调用render delete方法后,delete方法会自动调用[AcceptVerbsHttpVerbs.Post]注释。因此,id为的用户在我单击delete confirm(删除确认)按钮之前就被删除了,之后就发生了错误 以前一切都很顺利。所以,我不知道为什么会这样 我的代码:Asp.net mvc Asp.net mvc删除带有AcceptVerbs的HttpVerbs.Post方法自动调用问题,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我是Asp.NETMVC新手。 我有一个管理用户的应用程序。我的问题是,当我单击用户行的delete链接时,在调用render delete方法后,delete方法会自动调用[AcceptVerbsHttpVerbs.Post]注释。因此,id为的用户在我单击delete confirm(删除确认)按钮之前就被删除了,之后就发生了错误 以前一切都很顺利。所以,我不知道为什么会这样 我的代码: // GET: /User/Delete/5 [Authorize]
// GET: /User/Delete/5
[Authorize]
public ActionResult Delete(int id)
{
return View(GetByUserId(id));
}
// POST: /User/Delete/5
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(Users user)
{
//some process
}
第二个方法在调用第一个方法后自动调用
观点:
<h2>Delete</h2>
<p class="error"><%= Html.Encode(ViewData["messages"]) %></p>
<h3>Are you sure you want to delete this?</h3>
<fieldset>
<legend>Fields</legend>
<div class="display-label">UserId</div>
<div class="display-field"><%= Html.Encode(Model.UserId) %></div>
<div class="display-label">UserName</div>
<div class="display-field"><%= Html.Encode(Model.UserName) %></div>
<div class="display-label">FullName</div>
<div class="display-field"><%= Html.Encode(Model.FullName) %></div>
<div class="display-label">Email</div>
<div class="display-field"><%= Html.Encode(Model.Email) %></div>
<div class="display-label">DayOfBirth</div>
<div class="display-field"><%= Html.Encode(String.Format("{0:MM/dd/yyyy}", Model.DayOfBirth))%></div>
<div class="display-label">Phone</div>
<div class="display-field"><%= Html.Encode(Model.Phone) %></div>
<div class="display-label">Active</div>
<div class="display-field"><%= Html.Encode(Model.Active) %></div>
</fieldset>
<% using (Html.BeginForm()) { %>
<p>
<input type="submit" value="Delete" /> |
<%= Html.ActionLink("Back to List", "Index") %>
</p>
<% } %>
您可以创建另一个视图来解决确认删除的目的 请使用以下链接查找更多详细信息
请在下面找到您的修改代码
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult Delete()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(RegisterModel ob)
{
return RedirectToAction("Index");
}
}
Index.cshtml
@{
ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<h1>
@Convert.ToString(ViewBag.Delete)
</h1>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">
http://asp.net/mvc</a>.
<br />
<br />
@Html.ActionLink("Delete record", "Delete");
<br />
<br />
</p>
delete.cshtml
@model MvcApplication1.Models.RegisterModel
@{
ViewBag.Title = "Delete";
}
<h2>
Delete</h2>
<div>
Are you sure you want to delete this?</div>
@using (Html.BeginForm())
{
<p>
<input type="submit" value="Delete" />
|
</p>
}
上面的代码与您的代码相同,工作正常。请看一看。您能同时发布删除视图吗?您能发布视图中包含删除链接的部分吗?谢谢回复。我在上面的博文中补充了这个观点。谢谢@alok_dida,上面的解决方案可以帮助我解决问题。但我想知道,虽然我的代码和视图是第一次工作,但不是现在:你知道为什么吗?