我下面的添加/编辑代码应该重定向回我的索引操作,但它似乎不是,它只是保持在相同的状态。
更新函数运行(我已经通过调试检查)然后它应该返回没有对话框的索引视图和更新数据,此时对话框只是停留并且数据没有在表中更新。
有谁知道出了什么问题?我也对其进行了捕获,在那里我也看不到任何东西,只是似乎没有返回视图:
[HttpPost]
public ActionResult AddEditRecord(tblEquipment Equipment, string cmd)
{
if (ModelState.IsValid)
{
switch (cmd)
{
case "Add":
try
{
db.tblEquipments.Add(Equipment);
db.SaveChanges();
return RedirectToAction("Index");
}
catch { }
break;
case "Update":
try
{
tblEquipment Item = db.tblEquipments.Where(m => m.ID == Equipment.ID).FirstOrDefault();
if (Item != null)
{
Item.AssetNo = Equipment.AssetNo;
Item.MachineName = Equipment.MachineName;
db.SaveChanges();
}
return RedirectToAction("Index");
}
catch { }
break;
}
}
if (Request.IsAjaxRequest())
{
return PartialView("_AddEdit", Equipment);
}
else
{
return View("AddEdit", Equipment);
}
}
}
编辑:我将 return 放在函数的最开始(如下),它只是忽略了它并更新了表格!
public ActionResult AddEditRecord(tblEquipment Equipment, string cmd)
{
return RedirectToAction("Index");
if (ModelState.IsValid)
编辑 2:好的,我认为这可能是一个 ajax 问题。
看着这个问题
我的 chstml 生成下面的表单,我需要添加一个 return false 吗?CSHTML
@using (Ajax.BeginForm("AddEditRecord", "UserEquipment", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "equipmentDialog" }))
生成的 HTML
<form id="form0" action="/UserEquipment/AddEditRecord/752" method="post" data-ajax-update="#equipmentDialog" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true" novalidate="novalidate" jQuery18206614934889497519="43">