将会话变量从 asp 代码传递到 C# 代码

passing session variables from asp code to C# code

我有一个 .asp 代码,我在其中生成了几个会话变量,然后我将它重定向到一个 c# doe。我正在尝试将这些来自 the.asp 代码的会话变量读取到我的 C# 代码中,但似乎我无法将它们传递到我的 C# 代码中。当我还在 .asp 部分时,我可以获取会话变量的值,但是一旦我重定向到 c# 代码并尝试获取会话变量(及其值),该值就不会通过.

asp 部分:

response.write("Session(oldID)=&Session("oldID"))

c#部分:

string oldIDSession = (string)(Session["oldID"]);

请参考this post

我不确定您的应用程序的规模或性质,但我建议不要让您的 C# 类 依赖于会话,它们很容易测试。例如。

//In your Asp.Net
int productId = (int)Session["productId"];

//In you c# code
public Product GetProductById(int productId){

}

经典 ASP 网络应用程序和 ASP.NET 网络应用程序(C# 代码)运行 在 IIS 的不同应用程序域中,因此无法共享会话值。

您可以使用查询字符串或向 C# 代码发出直接 post 请求,将所需数据共享到 ASP.NET (C#) Web 应用程序。

参考 this post 了解如何使用查询字符串将数据传递到 C# 页面。

或者,对于 post 使用 POST 的数据(如果您需要将大量数据发送到 c# 代码)更改 asp 页面中表单的操作属性到数据应该 posted.

的 c#(aspx 页面)

编辑

在经典 asp 页面中,您需要执行类似 (refer this):

的操作
<form action="http://example.com/TestApp/YourPage.aspx" method="post">
    // form elements
</form>

然后,要在您的 c# 页面中读取 posted 值,您需要使用 (refer this):

string paramValue = Request.Form["key"]; // where key is the parameter name