2013-07-18 6 views
5

Trong ứng dụng web C# của tôi, tôi có hai dự án khác nhau ("Project1" và "Project2") trong một giải pháp. Trong "Project1" tôi có một trang web với một nút và trên sự kiện OnClick tôi đang cố gắng nắm bắt một biến phiên và chuyển hướng đến một trang web trong "Project2" được gọi là "Numbers.aspx". Tôi đặt "Project1" để bao gồm "Project2" như là một phụ thuộc và "Project1" là dự án khởi động. Khi tôi chạy "Project1" nó đi để url sau:Chuyển hướng trong nhiều dự án trong một giải pháp

http://localhost:5243/WebpageA.aspx 

Khi tôi đặt "project2" là dự án khởi động và chạy nó, nó đi vào url sau:

http://localhost:5571/Numbers.aspx 

Trong " Project1 "khi tôi viết:

Response.Redirect("~/Numbers.aspx"); 

nó nói đường dẫn không hợp lệ. Tôi cũng đã thử các đường dẫn sau và nó nói nó không tồn tại:

Response.Redirect("~/Project2/Numbers.aspx"); 

Có ai có bất cứ đề nghị làm thế nào tôi có thể chuyển hướng đến trang web này trong dự án khác nhau và chụp một biến phiên từ Project1? Cảm ơn!

//OnClick event 
    protected void click(object sender, EventArgs e) 
    { 
     Session["Variable"] = textBoxName.Text; 
    } 

Trả lời

3

Để chuyển hướng, tôi đề nghị thêm một thiết lập trong cài đặt ứng dụng của bạn, mà xác định các máy chủ của Dự án 2:

<appSettings> 
    <add key="Project2Host" value="localhost:5571/" /> 
</appSettings> 

Bây giờ cho chuyển hướng, bạn có thể viết:

Response.Redirect(Request.Url.Scheme + "://" 
    + ConfigurationManager.AppSettings["Project2Host"] 
    + "Numbers.aspx"); 

Bằng cách đó , khi nó đến thời gian để triển khai đến một máy chủ, bạn có thể (hy vọng) dễ dàng dây nó lên bằng cách thay đổi các "Project2Host" thiết lập trong web.config để "MyServer.com/Project2", hoặc bất cứ điều gì.


Đối với phần thứ hai, chuyển một biến phiên, có thể bạn có thể chuyển nó làm chuỗi truy vấn? Chuyển hướng đến URL mục tiêu cùng với "?Variable=" + Session["Variable"]. Sau đó nhặt nó lên trong Dự án 2 sử dụng Session["Variable"] = Request.QueryString["Variable"];.


Như một chú thích: nếu bạn đang lập kế hoạch để chia sẻ dữ liệu giữa hai trang web, tôi muốn xem xét thiết lập chúng như các thư mục riêng biệt/thư mục ảo theo dự án ứng dụng web tương tự.

+0

Wow câu trả lời tuyệt vời. Cảm ơn bạn rất nhiều vì đã giải thích rõ ràng, kỹ lưỡng! Tôi thực sự đánh giá cao sự giúp đỡ của bạn! –

1
Response.Redirect("~/Numbers.aspx") 

có nghĩa là tìm kiếm khuôn khổ cho sự Number.aspx trong phạm vi của project1. Nó có nghĩa là bắt đầu với thư mục gốc cho Project1, tìm kiếm Numbers.aspx.

Điều bạn phải làm là tạo thư mục ảo cho Project2 trong IIS và cung cấp liên kết đường dẫn.

+1

Cảm ơn sự giúp đỡ của bạn! –