繁体   English   中英

RedirectToAction似乎不起作用

[英]RedirectToAction doesn't seem to be working

我的下面的添加/编辑代码应该重定向回我的索引操作,但它似乎也没有,它只是保持相同的状态。

更新函数运行(我通过调试检查)然后它应该返回没有对话框的索引视图和对话框刚刚停留的更新数据,并且表中的数据没有更新。

谁知道什么是错的? 我也在它上面运行捕获,我也看不到任何东西,只是似乎没有返回视图:

[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);
        }
    }
}

编辑:我把返回放在函数的最开头(下面),它只是忽略它并更新表!

public ActionResult AddEditRecord(tblEquipment Equipment, string cmd)
{
    return RedirectToAction("Index");
    if (ModelState.IsValid)

编辑2:好的我认为这可能是一个ajax问题。

看着这个问题

我的chstml生成下面的表单,我需要添加一个返回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">

排序!

我按照下面修改了ajax选项,它现在可以成功运行

<script>
    function onSuccess() {
        window.location.href = '@Url.Action("Index","UserEquipment")'
    }
</script>


@using (Ajax.BeginForm("AddEditRecord", "UserEquipment", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "equipmentDialog", OnSuccess="onSuccess()" }))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM