C# Cookie中的HTML值
这可能已经得到了回答,但我找不到我要找的东西 我正在根据用户在表单中输入的数据构建一个简单的html表。我需要将这些数据通过电子邮件发送给他们,并显示在另一个页面上,但是,我们不会将其保存到数据库中 为了解决这个问题,我决定将html字符串存储在cookie中,然后在需要的页面上读取cookie 然而,cookie的值被截断了,我不知道为什么。以下是我所拥有的:C# Cookie中的HTML值,c#,.net,C#,.net,这可能已经得到了回答,但我找不到我要找的东西 我正在根据用户在表单中输入的数据构建一个简单的html表。我需要将这些数据通过电子邮件发送给他们,并显示在另一个页面上,但是,我们不会将其保存到数据库中 为了解决这个问题,我决定将html字符串存储在cookie中,然后在需要的页面上读取cookie 然而,cookie的值被截断了,我不知道为什么。以下是我所拥有的: string str = ""; str += "<p>Please print this form a
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> </td><td> </td><td> </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,它会更快地到达客户端。我接受这个答案,因为它确实回答了特定的问题。然而,我正在根据我收到的所有建议对其进行重构。谢谢大家!