gpt4 book ai didi

c# - Javascript 对象传递给 ASP.NET 处理程序

转载 作者:行者123 更新时间:2023-11-30 19:43:59 25 4
gpt4 key购买 nike

如何将 JavaScript 对象传递到 ASP.NET 处理程序并解析值?

我创建了一个 Complex 类型的对象,例如:

function AccountObjCreate() {
var AccountsView = {};
AccountsView.Username = null;
AccountsView.Email = null;
AccountsView.Password = null;

return AccountsView;
}

然后像这样填充该对象:

var aView = AccountObjCreate();
aView.Username = $('#tbUserName').val().trim();
aView.Email = $('#tbEmail').val().trim().toLowerCase();
aView.Password = $('#tbPassword').val().trim();

然后我打电话:

$.post("/Handlers/AccountHandler.ashx", { obj: aView },
function (results) {
if (results.isSuccess) {
alert(results.msg);
} else {
alert(results.msg);
}
}, "json");

当我在控制台中查看它时,我在 aView 中看到我的所有数据都是 json。

我的 ASP.NET 处理程序页面是

context.Response.ContentType = "application/json";
context.Response.ContentEncoding = Encoding.UTF8;
string obj = context.Request["obj"];

但是 obj 是 NULL。

最佳答案

为了将对象传递到服务器,您应该将其序列化为一个字符串(您可以使用描述的方法 here 或包含用于 javascript 的 JSON 库 here ),然后使用 .NET JavaScriptSerializer 类。

JS代码。

var data = {
obj: JSON.stringify(aView)
};
$.post("/Handlers/AccountHandler.ashx", data, function(results) {
if (results.isSuccess) {
alert(results.msg);
} else {
alert(results.msg);
}
}, "json");​

然后在服务器处理程序上,您可以使用提到的 JavaScriptSerializer 类解析 JSON 字符串。

public class AccountsView {
public string Username;
public string Email;
public string Password;
}

public void ProcessRequest(HttpContext context)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
string value = context.Request["obj"];
var aView = serializer.Deserialize(value, typeof(AccountsView));

context.Response.ContentType = "application/json";
context.Response.ContentEncoding = Encoding.UTF8;
}

关于c# - Javascript 对象传递给 ASP.NET 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13424687/

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