C# 如何从ajax命令调用的类内部重定向到新页面?
我正在处理一个asp.NETMVC项目。一位同事是MVC新手,他使用ajax调用处理所有数据填充和单击操作。我知道MVC不应该这样设置,但这是我一直坚持的。我只是想尽力解决这个问题。无论如何,在ajax使用的方法中,我需要将用户重定向到新页面。我该怎么做 我尝试了响应。重定向,但我得到一个错误,说它不存在。我试图添加一个使用类,但无法使其工作 我找到System.Diagnostics.Process.Start,但它会在新的浏览器选项卡中打开。是否有可能在同一选项卡中打开 这里是ajax调用。当用户单击按钮时,会在javascript函数中触发:C# 如何从ajax命令调用的类内部重定向到新页面?,c#,asp.net,ajax,asp.net-mvc,redirect,C#,Asp.net,Ajax,Asp.net Mvc,Redirect,我正在处理一个asp.NETMVC项目。一位同事是MVC新手,他使用ajax调用处理所有数据填充和单击操作。我知道MVC不应该这样设置,但这是我一直坚持的。我只是想尽力解决这个问题。无论如何,在ajax使用的方法中,我需要将用户重定向到新页面。我该怎么做 我尝试了响应。重定向,但我得到一个错误,说它不存在。我试图添加一个使用类,但无法使其工作 我找到System.Diagnostics.Process.Start,但它会在新的浏览器选项卡中打开。是否有可能在同一选项卡中打开 这里是ajax调用。
$.ajax({
contentType: "application/json",
dataType: "json",
type: "post",
url: "/api/WoApi/PostWoApprGen/" + vUsr,
data: JSON.stringify(invObj),
success: function (res)
{
if (res)
{
var inv = $('#DivInv');
inv.html(res);
output = $('#TmpMsg');
output.html("");
opStatMsg("success", "rptGenWin");
}
else
{
opStatMsg("error", "rptGenWin");
}
}
});
这将转到控制器目录中的类,文件名WoApiController.cs:
public string PostWoInv([FromBody] Koorsen.OpenAccess.WrkOrdTemp obj)
{
var currentUser = ClsUtility.GetCurrentUser();
if (currentUser == 0)
{
rep.UpdateWorkOrderStatusInvoiced(obj.WoTempId, currentUser, obj);
}
else
{
System.Diagnostics.Process.Start("~Admin/Login");
}
.............
.............
在您的成功回调中,只需执行以下操作
location.href = 'Home/Index';
或者,最好使用Razor和HomeController中名为Index
的方法
location.href = '@Url.Action("Index", "Home")';
ajax的全部目的是保持在同一页面上。ajax调用不会重定向。如果您想重定向,请进行正常提交。我知道,但这些ajax调用是由一位同事设置的。我受够了。无论如何,我可以让它工作吗?在成功回调中-location.href='someUrl'代码>要让它在服务器端正常工作吗?谢谢。无论如何要让它在服务器端工作?成功回调将不需要重定向,除非出现超时问题,否则它无法转到那里,除非我有办法传递到成功部分,它有时应该正常处理,而其他时候则重定向。