无法在 ASP.NET WebMethod 中重定向 URL
Unable to Redirect URL in ASP.NET WebMethod
我在前端的 ASP.NET (WebForms) 应用程序中使用 PageMethods 来调用后端的 c# 函数,从数据库中删除一行。删除部分有效,但我无法将 url 后记从我当前的 .aspx 文件重定向到一个名为 StartPage.aspx 的新文件。本质上,我想在按下按钮后将 url 从 UpdateNetEvent.aspx?ID=[Number] 更改为 StartPage.aspx。
我的 HTML 按钮如下:
<asp:Button ID="eventFormResolveBtn" runat="server" Text="Resolve NetEvent" OnClientClick="resolveClicked()" style="background-color:forestgreen;"/>
而对应的Javascript函数调用为:
function resolveClicked() {
try {
var currentRowID = document.getElementById('<%=eventFormCurrentRowID.ClientID%>').value;
PageMethods.resolveData(currentRowID, OnSucceeded, OnFailed);
function OnSucceeded(result) {
window.location = result.d;
}
function OnFailed(error) {
alert("An error occured on resolveClicked()");
}
}
catch (err) {
return err;
}
return false;
}
另外,后台的WebMethod调用如下:
[WebMethod]
public static string resolveData(string CurrentRowID)
{
try
{
SqlCommand command;
SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
command = new SqlCommand("deleteNetEventRow", sqlConn);
command.Parameters.AddWithValue("@RowID", Convert.ToInt32(CurrentRowID));
command.CommandType = System.Data.CommandType.StoredProcedure;
sqlConn.Open();
command.ExecuteNonQuery();
sqlConn.Close();
return "StartPage.aspx";
}
catch (Exception ex)
{
Console.WriteLine("ERROR: " + ex.ToString()); // Add a log helper to display errors here
return "Error in resolveData WebMethod";
}
}
SQLCommand 调用和执行完美无缺,但我无法重定向到另一个 .aspx 页面。
例如
window.location.href = "http://example.com/new_url";
您可以 return 服务器的 url 如下所示:
result.d="http://localhost/StartPage.aspx"
function OnSucceeded(result) {
window.location.href = result.d;
}
我在前端的 ASP.NET (WebForms) 应用程序中使用 PageMethods 来调用后端的 c# 函数,从数据库中删除一行。删除部分有效,但我无法将 url 后记从我当前的 .aspx 文件重定向到一个名为 StartPage.aspx 的新文件。本质上,我想在按下按钮后将 url 从 UpdateNetEvent.aspx?ID=[Number] 更改为 StartPage.aspx。
我的 HTML 按钮如下:
<asp:Button ID="eventFormResolveBtn" runat="server" Text="Resolve NetEvent" OnClientClick="resolveClicked()" style="background-color:forestgreen;"/>
而对应的Javascript函数调用为:
function resolveClicked() {
try {
var currentRowID = document.getElementById('<%=eventFormCurrentRowID.ClientID%>').value;
PageMethods.resolveData(currentRowID, OnSucceeded, OnFailed);
function OnSucceeded(result) {
window.location = result.d;
}
function OnFailed(error) {
alert("An error occured on resolveClicked()");
}
}
catch (err) {
return err;
}
return false;
}
另外,后台的WebMethod调用如下:
[WebMethod]
public static string resolveData(string CurrentRowID)
{
try
{
SqlCommand command;
SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
command = new SqlCommand("deleteNetEventRow", sqlConn);
command.Parameters.AddWithValue("@RowID", Convert.ToInt32(CurrentRowID));
command.CommandType = System.Data.CommandType.StoredProcedure;
sqlConn.Open();
command.ExecuteNonQuery();
sqlConn.Close();
return "StartPage.aspx";
}
catch (Exception ex)
{
Console.WriteLine("ERROR: " + ex.ToString()); // Add a log helper to display errors here
return "Error in resolveData WebMethod";
}
}
SQLCommand 调用和执行完美无缺,但我无法重定向到另一个 .aspx 页面。
例如
window.location.href = "http://example.com/new_url";
您可以 return 服务器的 url 如下所示:
result.d="http://localhost/StartPage.aspx"
function OnSucceeded(result) {
window.location.href = result.d;
}