我面临的问题是,当单击删除链接并调用我的delete actionResult时,它错误地提示没有删除视图。我尝试设置ActionName(“ Index”),但随后收到有关View Index的模糊错误消息。
public ActionResult Index()
{
***code goes here****
return View(viewModel);
}
[HttpPost, ActionName("Index")]
[OnAction(ButtonName = "Create")]
public ActionResult Index(***code goes here***)
{
***code goes here****
return RedirectToAction("Index");
}
//GET:
public ActionResult Delete(int? id)
{
***code goes here****
return View(lansing);
}
//POST:
[HttpPost, ActionName("Index")]
[OnAction(ButtonName = "Delete")]
//[ValidateAntiForgeryToken]
public ActionResult Delete(int id)
{
***code goes here****
return RedirectToAction("Index");
}
然后我有一个表,该表使用用户输入的信息进行更新,并且当从表中单击由这两个ActionResult处理的表中的actionLink时,该信息也会删除。
答案 0 :(得分:0)
您可以通过将视图名称作为第一个参数传递给view
方法的调用来指定要渲染的视图(请参见ASP.NET或ASP.NET Core的文档)。 / p>
但是由于通常使用HTTP GET Delete
方法向用户显示要删除的元素并提示用户确认删除(请参见此ASP.NET Core tutorial),因此您可能想为该视图添加专用视图它。
答案 1 :(得分:0)
我面临的问题的解决方案是实际上在Get Delete方法内部执行Delete Post的操作,因为在创建,编辑和删除中都使用了一个视图。
最终结果如下:
public ActionResult Delete(int? id)
{
***code goes here****
var lansing = db.LansingMileages.Find(id);
viewModel.Records = new[]
{
lansing
};
db.LansingMileages.Remove(lansing);
db.SaveChanges();
return RedirectToAction("Index");
}