C# Cookie中的HTML值

C# Cookie中的HTML值,c#,.net,C#,.net,这可能已经得到了回答,但我找不到我要找的东西 我正在根据用户在表单中输入的数据构建一个简单的html表。我需要将这些数据通过电子邮件发送给他们,并显示在另一个页面上,但是,我们不会将其保存到数据库中 为了解决这个问题,我决定将html字符串存储在cookie中,然后在需要的页面上读取cookie 然而,cookie的值被截断了,我不知道为什么。以下是我所拥有的: string str = ""; str += "<p>Please print this form a

这可能已经得到了回答,但我找不到我要找的东西

我正在根据用户在表单中输入的数据构建一个简单的html表。我需要将这些数据通过电子邮件发送给他们,并显示在另一个页面上,但是,我们不会将其保存到数据库中

为了解决这个问题,我决定将html字符串存储在cookie中,然后在需要的页面上读取cookie

然而,cookie的值被截断了,我不知道为什么。以下是我所拥有的:

    string str = "";

    str += "<p>Please print this form and send it with your repair.<br /><b>INSTRUMENT REPAIR FORM</b><p>";

    str += "<table style='width: 800px'>";
    str += "<tr><td>CUST #</td><td>" + txtCustomerNum.Text + "</td><td>NAME & ADDRESS</td><td>" + txtName.Text + "</td></tr>";
    str += "<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>" + txtAddress.Text + "</td></tr>";
    str += "<tr><td>PHONE</td><td>" + txtPhone.Text + "</td><td>AUTHORIZED BY</td><td>" + "________________________" + "</td></tr>";
    str += "</table>";

    HttpCookie myCookie = new HttpCookie("InsRepairFormCookie");
    myCookie.Value = str;

    Response.Cookies.Add(myCookie);
string str=”“;
str+=“请打印此表并与您的维修一起发送。
仪器维修表”; str+=”; str+=“CUST#”+txtCustomerNum.Text+“姓名和地址”+txtName.Text+”; str+=“”+txtAddress.Text+“”; str+=“电话”+txtPhone.Text+”由“+”授权; str+=”; HttpCookie mycokie=新的HttpCookie(“InsRepairFormCookie”); myCookie.Value=str; 响应.Cookies.添加(mycokie);

当我读cookie时,它在
800px之后被截断。我需要做什么才能将整个字符串存储为cookie值?

使用StringBuilder可能是个好主意。它节省内存,并且只创建一个字符串,因为此方法为每个+=创建至少2个字符串。只有一个字符串也可以解决您面临的问题,尽管按照Esteban的建议对其进行编码并不是一个坏主意

    StringBuilder str = new StringBuilder;

    str.Append("<p>Please print this form and send it with your repair.<br /><b>INSTRUMENT REPAIR FORM</b><p>");

    str.Append("<table style='width: 800px'>");

...

    HttpCookie myCookie = new HttpCookie("InsRepairFormCookie");
    myCookie.Value = str.ToString();

    Response.Cookies.Add(myCookie);
StringBuilder str=新的StringBuilder;
str.Append(“请打印此表并与您的维修一起发送。
仪器维修表”; str.Append(“”); ... HttpCookie mycokie=新的HttpCookie(“InsRepairFormCookie”); myCookie.Value=str.ToString(); 响应.Cookies.添加(mycokie);
将显示数据和实际业务数据分开。您感兴趣的表单上的值是什么?创建一个包含字段的对象,并将其存储在会话中。Cookie是为小ID设计的,而不是像您使用的那样的数据。意识到每一次页面加载都会带来cookie


会话将信息存储在服务器上,然后使用cookie来指示应该从哪个用户检索数据。

您是否使用
Session
进行了尝试?我相信
会话
不会截断该值。我在谷歌上做了一个非常简单的搜索,发现了一些问题。如果您坚持使用cookie,我建议您尝试对其内容进行编码。编码在哪里?mycokie.Value=HttpContext.Current.Server.HtmlEncode(“str.ToString”);然而,Mathieson和Estibon都是对的,你真的应该使用session,它会更快地到达客户端。我接受这个答案,因为它确实回答了特定的问题。然而,我正在根据我收到的所有建议对其进行重构。谢谢大家!