【问题标题】:passing session variables from asp code to C# code将会话变量从 asp 代码传递到 C# 代码
【发布时间】:2016-03-25 02:45:36
【问题描述】:

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

asp 部分:

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

c#部分:

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

【问题讨论】:

  • 认为你的代码 sn-p 错误应该是response.write("Session(oldID)=" & Session("oldID"))。这对提问的头脑来说并不重要。

标签: c# asp.net vbscript asp-classic session-variables


【解决方案1】:

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

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

请参阅this post 以了解使用查询字符串将数据传递到 C# 页面。

或者,为了使用 POST 发布数据(如果您需要将大量数据发送到 c# 代码),请将 asp 页面中表单的 action 属性更改为数据应该发布到的 c#(aspx 页面)。

编辑

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

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

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

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

【讨论】:

  • 你能给我举一个你的第二种方法的例子吗?(POST)
  • 感谢 Bharat Gupta。
【解决方案2】:

请参考this post

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

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

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

}

【讨论】:

  • 完全不相关,您在这里错过了有关经典 ASP 的部分。
  • 哦!是的,我现在看到了。
猜你喜欢
  • 2014-07-12
  • 2018-01-09
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多