gpt4 book ai didi

c# - MVC 5 存储数据集,以便我可以在调用 AJAX 方法时检索它

转载 作者:太空宇宙 更新时间:2023-11-03 12:34:40 24 4
gpt4 key购买 nike

嘿,我是 MVC 世界的新手,所以这是我的问题:

我有一个数据集,其中合并了 2 个(总共 3 个)其他数据集。我需要在稍后在该页面上通过 AJAX 进行的调用中使用该信息。

ajax调用:

$.ajax({
url: '/Switchboard/personData',
type: 'GET',
cache: false,
dataType: 'json',
data: { reqID: 234 },
success: function (response) {
//console.log(JSON.stringify(response));
},
error: function (response) {
alert(response);
}
});

如您所见,我正在通过 AJAX 在我的 Controller 中调用 personData 方法。

当页面加载时,我像这样在我的 Controller 中填充数据集:

command = new SqlCommand("SELECT * FROM .....", con);
command.Parameters.AddWithValue("@val1", 1);
da = new SqlDataAdapter(command);
da.Fill(ds1, "theTrip");
allData.Merge(ds1);

command = new SqlCommand("SELECT * FROM .....", con);
command.Parameters.AddWithValue("@val1", 1);
da = new SqlDataAdapter(command);
da.Fill(ds2, "theMain");
allData.Merge(ds2);

command = new SqlCommand("SELECT * FROM .....", con);
command.Parameters.AddWithValue("@val1", 1);
da = new SqlDataAdapter(command);
da.Fill(ds3, "theEvents");
allData.Merge(ds3);

allData 的定义全局如下:

DataSet allData = new DataSet();

这样做很好,可以将所需的数据加载到 allData 数据集中。

但是,当我单击一个调用 ajax 方法的按钮时,它会转到我的 Controller 中看起来像这样的方法:

[HttpGet]
public string personData(Int32 reqID)
{
DataSet _ds1 = new DataSet();

command = new SqlCommand("SELECT Admin FROM ....",con);
da = new SqlDataAdapter(command);
da.Fill(_ds1, "theLeads");

allData.Merge(_ds1);

_ds1.Clear();
command = new SqlCommand("SELECT categoryID FROM ....", con);
da = new SqlDataAdapter(command);
da.Fill(_ds1, "theGroups");

allData.Merge(_ds1);

_ds1.Clear();
command = new SqlCommand("SELECT * FROM ....", con);
da = new SqlDataAdapter(command);
da.Fill(_ds1, "theTypes");

allData.Merge(_ds1);

_ds1.Clear();
_ds1.Dispose();
command.Dispose();
con.Close();

return JsonConvert.SerializeObject(allData, Formatting.Indented);
}

再次,它可以工作,但它不再包含我的其他数据。它只有

theLeads

theGroups

theTypes

而不是我需要的:

theTrip

theMain

theEvents

theLeads

theGroups

theTypes

theTriptheMaintheEvents 都在页面加载时填充(正如您在我发布的代码中看到的那样)但是当通过 ajax 从同一页面调用方法时,它似乎没有保存它?

我怎样才能完成我需要它做的事情?

最佳答案

您的应用程序将无法正常工作,因为您的应用程序是 Web 应用程序并且您正在进行 AJAX 调用。我们的应用程序是无状态的,因此每次您向您的服务发出请求时,“allData”都会再次初始化,并且没有来自先前状态的数据。

因此在“personData”方法中,您需要在将新数据添加到“allData”之前再次填充旧数据。

感谢和问候,切坦兰帕里亚

关于c# - MVC 5 存储数据集,以便我可以在调用 AJAX 方法时检索它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41487555/

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