[英]HttpDelete method in .net MVC returns error 405 - method not allowed
所有在线信息都表明要对 web.config 文件进行更改,但据我了解,web.config 文件在较新版本的 Z2D50972FECD376129545507F1062089Z mvc 中不存在。 那么如何允许 httpDelete 方法呢?
(我在我的 controller 中创建了删除方法,该方法调用 MySQL '从表中删除'方法)
代码:
[HttpDelete]
public ActionResult Delete() //string id
{
connectionString();
conn.Open();
com.Connection = conn;
var userId = HttpContext.Session.GetString("userId");
var stm = "Delete from lex_reminders where reminder_id=@id"; //" + id + ";
var cmd = new MySqlCommand(stm, conn);
cmd.Parameters.AddWithValue("@id", 25);
int res = cmd.ExecuteNonQuery();
if (res>0)
{
conn.Close();
Create(userId);
return View("Create");
}
else
{
conn.Close();
return View("Error");
}
}
请注意,HTTP Get``Delete 方法不会删除指定的记录,它应该返回该实体的视图,您可以在其中提交(HttpPost)删除。执行删除操作以响应 GET 请求(或为此重要的是,执行编辑操作、创建操作或任何其他更改数据的操作)会打开一个安全漏洞。 阅读此文档以了解安全漏洞: http://stephenwalther.com/archive/2009/01/21/asp-net-mvc-tip-46-ndash-donrsquot-use-delete-links-because请参阅下面的删除方法示例与 HtpPost:
// GET: /Movies/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Movie movie = db.Movies.Find(id);
if (movie == null)
{
return HttpNotFound();
}
return View(movie);
}
// POST: /Movies/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Movie movie = db.Movies.Find(id);
db.Movies.Remove(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.