如何重定向编辑视图我在表格中双击的行?
我实际上已成功将行的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);
,它仍然没有重定向到编辑视图。
有人可以帮助我吗?
答案 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>