我有一个.asp代码,我在其中生成了几个会话变量,然后我将其重定向到c#doe。我试图将这些来自.asp代码的会话变量读入我的C#代码,但似乎我无法将这些变量传递到我的c#代码中。当我仍然在.asp部分时,我可以得到会话变量的值,但是一旦我重定向到c#代码并尝试获取会话变量(及其值),该值就不会出现。
asp部分:
response.write("Session(oldID)=&Session("oldID"))
c#part:
string oldIDSession = (string)(Session["oldID"]);
答案 0 :(得分:3)
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
答案 1 :(得分:-1)
请参阅this post
我不确定您的应用程序的规模或性质,但我建议不要让您的C#类依赖于会话,它们很容易测试。例如。
//In your Asp.Net
int productId = (int)Session["productId"];
//In you c# code
public Product GetProductById(int productId){
}