5

I have class in c# called "Point".

public class Point(){
.
.
}

In page1.aspx I created:

Point p1 = new Point();

I want to send it to page2.aspx. I try to send with:

Response.Redirect("~/page2.aspx?x=p1");

And get it in page 2 with:

Point p2 =Request.QueryString["x"];

It does not work. Can you help me please?

2
  • what properties does Point have? what information needs to be transferred Commented Dec 19, 2013 at 18:51
  • You can't pass an object in query string. Commented Dec 19, 2013 at 22:33

3 Answers 3

6

Aside from the fact that you cannot just put "p1" in a string and have it reference a class instance, you cannot just add an object as a query argument.

You will need to add arguments to the URL for each element of Point. For example:

Response.Redirect(String.Format("~/page2.aspx?x={0}&y={1}", p1.x, p1.y));

Alternatively, you could use Session if you don't need it as a query argument.

Sign up to request clarification or add additional context in comments.

Comments

4

You'll want to use the Session instead of the QueryString

Session["myPoint"] = p1;

And then on page2.aspx

p2 = (Point)Session["myPoint"]

Comments

2

No, you cannot directly pass an object as querystring. impossible.

There are three ways you can pass data between two aspx pages

1) using Response.Redirect() / Server.Transfer()

2) using session

3) using public properties

here i have defined example for each of them

1) using Server.Transfer()

source page Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <div>
                <asp:Label ID="lblUsername" runat="server" BorderStyle="None" Font-Bold="True" Font-Names="Garamond"
                    Font-Size="Large" Style="z-index: 100; left: 240px; position: absolute; top: 32px"
                    Text="Username" Width="73px"></asp:Label>
                <br />
                <asp:Label ID="lblPassword" runat="server" BorderStyle="None" Font-Bold="True" Font-Names="Garamond"
                    Font-Size="Large" Style="z-index: 101; left: 237px; position: absolute; top: 80px"
                    Text="Password" Width="80px"></asp:Label>
                <br />
                <asp:TextBox ID="txtPassword" runat="server" Style="z-index: 102; left: 355px; position: absolute;
                    top: 80px" TextMode="Password" Width="151px"></asp:TextBox>
                <asp:TextBox ID="txtUsername" runat="server" Style="z-index: 103; left: 357px; position: absolute;
                    top: 30px" Width="153px"></asp:TextBox>
                <asp:Label ID="lblMessage" runat="server" Font-Bold="False" Font-Names="Bookman Old Style"
                    Font-Size="Medium" Style="z-index: 104; left: 354px; position: absolute; top: 130px"
                    Text="Message :"></asp:Label>
                <asp:Button ID="btnSubmit" runat="server" Font-Bold="True" Font-Names="Garamond"
                    Font-Size="Large" OnClick="btnSubmit_Click" Style="z-index: 106; left: 289px;
                    position: absolute; top: 160px" Text="Submit" />

            </div>
        </div>
    </form>
</body>
</html>

code behind

using System;
using System.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    string s1, s2;

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        s1 = txtUsername.Text;
        s2 = txtPassword.Text;

        if ((s1 == "sa") && (s2 == "123qwe"))
        {
            /*
             * Passing data using QueryString.
             */
            //Response.Redirect("Description.aspx?Username=&Password=" + s1 + " " + s2);
            Server.Transfer("Description.aspx?Username=&Password=" + s1 + " " + s2);
        }
        else
        {
            lblMessage.Text = "Invalid Username and Password";
        }
    }
}

destination page

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Description.aspx.cs" Inherits="Description" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblResult" runat="server" Font-Bold="True" Font-Names="Garamond" Font-Size="X-Large"
            Height="22px" Style="z-index: 100; left: 307px; position: absolute; top: 19px"
            Text="Result" Width="71px"></asp:Label>
    </div>
    </form>
</body>
</html>

code behind

using System;
using System.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class Description : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //For Response.Redirect - do this

        //string username = Request.QueryString["Username"];
        //string password = Request.QueryString["Password"];
        //lblResult.Text = "Username : " + " Password : " + password;

        //Below is for Server.Transfer() 

        if (Page.PreviousPage != null)
        {
            TextBox SourceTextBox_1 =
                (TextBox)Page.PreviousPage.FindControl("txtUsername");
            TextBox SourceTextBox_2 =
               (TextBox)Page.PreviousPage.FindControl("txtPassword");
            if (SourceTextBox_1 != null)
            {
                lblResult.Text = SourceTextBox_1.Text + " " + SourceTextBox_2.Text ;
            }
        }

    }
}

2) Response.Redirect() and sessions has been explained by two bro's here, for me no need to discuss regarding about that. it's clearly explained there

3) using properties

source page

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <div>
                <asp:Label ID="lblUsername" runat="server" BorderStyle="None" Font-Bold="True" Font-Names="Garamond"
                    Font-Size="Large" Style="z-index: 100; left: 240px; position: absolute; top: 32px"
                    Text="Username" Width="73px"></asp:Label>
              <br />
                <asp:Label ID="lblPassword" runat="server" BorderStyle="None" Font-Bold="True" Font-Names="Garamond"
                    Font-Size="Large" Style="z-index: 101; left: 237px; position: absolute; top: 80px"
                    Text="Password" Width="80px"></asp:Label>
                <br />
                <asp:TextBox ID="txtPassword" runat="server" Style="z-index: 102; left: 355px; position: absolute;
                    top: 80px" TextMode="Password" Width="151px"></asp:TextBox>
                <asp:TextBox ID="txtUsername" runat="server" Style="z-index: 103; left: 357px; position: absolute;
                    top: 30px" Width="153px"></asp:TextBox>
                <asp:Label ID="lblMessage" runat="server" Font-Bold="False" Font-Names="Bookman Old Style"
                    Font-Size="Medium" Style="z-index: 104; left: 354px; position: absolute; top: 130px"
                    Text="Message :"></asp:Label>
                <asp:Button ID="btnSubmit" runat="server" Font-Bold="True" Font-Names="Garamond"
                    Font-Size="Large" OnClick="btnSubmit_Click" Style="z-index: 106; left: 289px;
                    position: absolute; top: 160px" Text="Submit" />
            </div>
        </div>
    </form>
</body>
</html>

code behind

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    private string myUserName;
    /*
     * Defining Properties in the source page to be Accessible on the destination page.
     * means Exposing data to other pages using Properties
     * To retrieve data from source page,Destination page must have 
     * <%@ PreviousPageType VirtualPath="~/Default.aspx" %> Directive added below <%@ Page %> Directive

     */
    public string propUserName
    {
        get { return myUserName; }
        set { myUserName = value; }
    }
    private string myPassword;

    public string propPassword
    {
        get { return myPassword; }
        set { myPassword = value; }
    }


    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if ((txtUsername.Text == "chandan") && (txtPassword.Text == "niit"))
        {
            myUserName = txtUsername.Text;
            myPassword = txtPassword.Text;
        }
       Server.Transfer("Description.aspx");
    }
}

destination page

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Description.aspx.cs" Inherits="Description" %>
<%@ PreviousPageType VirtualPath="~/Default.aspx" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            &nbsp;
             <asp:Label ID="Label2" runat="server" Text="Password" style="z-index: 100; left: 336px; position: absolute; top: 69px" Font-Bold="True" Font-Size="Larger"></asp:Label>
            <asp:Label ID="Label1" runat="server" Text="UserName" style="z-index: 102; left: 333px; position: absolute; top: 28px" Font-Bold="True" Font-Size="Larger"></asp:Label>
        </div>
    </form>
</body>
</html>

code behind

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Description : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = PreviousPage.propUserName;
        Label2.Text = PreviousPage.propPassword;

    }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.