dblclick事件在行表中并重定向到编辑视图MVC 5

时间:2016-03-07 07:35:38

标签: jquery asp.net-mvc

如何重定向编辑视图我在表格中双击的行?

我实际上已成功将行的ID传递给控制器​​,但我无法重定向视图以进行编辑。

$('#tableData td').dblclick(function () {
            var $this = $(this);
            var row = $this.closest("tr");
            var id = row.data("id");

            $.ajax({
                data: { id: id },
                url: '@Url.Action("PCApplicationRecordEdit","EmployeePCAssignment")',
                type: 'POST',
                success: function (result)
                {

                }
            });
        });

这是当我双击表格中的行时触发的jquery。

public ActionResult PCApplicationRecordEdit(PCApplicationRecordModels model)
    {
        return View(model);
    }

我编辑的方法视图

[HttpPost]
    public ActionResult PCApplicationRecordEdit(string id)
    {
        /*I do things here*/

        return View("PCApplicationRecordEdit", model);
    }

但即使我有return View("PCApplicationRecordEdit", model);,它仍然没有重定向到编辑视图。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

问题是您正在使用返回所述视图的 ajax 调用。

如果要在javascript中使用ajax调用重定向页面,请尝试返回javascript命令以重定向到所述页面。类似的东西:

return JavaScript("window.location = 'EmployeePCAssignment/PCApplicationRecordEdit'");

在您的控制器中。

(Ajax调用不刷新或重新加载页面,它用于在您停留在同一页面时从服务器获取数据。这就是为什么它没有工作,您检索到的数据没有任何反应。)

如果您在转到编辑时不需要控制器中的其他逻辑,那么用以下代码替换ajax调用可能会更好:

window.location = 'EmployeePCAssignment/PCApplicationRecordEdit' 

答案 1 :(得分:0)

您将直接在 foreach 中的 tr 元素上设置 ondblclick()功能,并设置一个小的javascript函数来调用。

请参阅razor构建中带有Customer表的示例

...
 <tbody>
  @foreach (var item in Model)
        {
            <tr ondblclick="goToEdit(@item.CustomerID)">
                <td>
                    @Html.DisplayFor(modelItem => item.CustomerCode)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.CustomerName)
                </td>
            </tr>
        } 

在脚本部分:

<script>
  function goToEdit(s) {

        location.href = "@Url.Action("Edit", "Customer", new {id= "cid" })".replace("cid",s.toString()); 
    }

</script>