gpt4 book ai didi

c# - 无法在静态方法中调用 Response.Redirect

转载 作者:可可西里 更新时间:2023-11-01 02:30:47 24 4
gpt4 key购买 nike

您好,我正在尝试从 aspx 页面运行带有 ajax 的网络方法。基本上我想使用查询字符串重定向到另一个 aspx 页面,但我想从 <a href> 开始,因为它是 jquery 菜单的一部分。

据我所知,我只能使用 ajax 调用静态 web 方法,但我不能从我的静态函数重定向。

visual studio 用红线标记它说:“非静态字段方法或属性 System.Web.HttpResponse.Redirect(string) 需要对象引用”

这是 ajax 调用:

function redirect_to_profile() {
$.ajax({
type: "POST",
url: "personal_profile.aspx.cs.aspx/redirect_to_profile",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
alert("success");
},
error: function (res, msg, code) {
// log the error to the console
} //error
});
}

这是一个 href:

<a  onclick="redirect_to_profile()">Personal Profile</a>

这是 personal_profile.aspx 中的网络方法

[WebMethod]
public static void redirect_to_profile()
{

dbservices db=new dbservices();
string user = HttpContext.Current.User.Identity.Name;
string id = db.return_id_by_user(user);

HttpResponse.Redirect("personal_profile.aspx?id="+id);
}

最佳答案

您需要将构建的 URL 返回给客户端:

public static string redirect_to_profile()
{
dbservices db=new dbservices();
string user = HttpContext.Current.User.Identity.Name;
string id = db.return_id_by_user(user);
return "personal_profile.aspx?id="+id;
}

然后使用JavaScript,在AJAX调用的success函数中,设置位置:

window.location = res;

或者也许:

window.location = res.d;

关于c# - 无法在静态方法中调用 Response.Redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17073362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com