这可能已经回答了,但我找不到我要找的东西。
我正在根据用户在表单中输入的数据构建一个简单的 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> </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);
当我阅读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);
将展示数据和实际商家数据分开。 您感兴趣的表单上的值是什么? 创建一个带有字段的对象,并将其存储在会话中。 Cookie 专为小 ID 设计,而不是您正在使用的数据。 意识到每个页面加载都会带来该cookie。
会话将信息存储在服务器上,然后使用 cookie 仅指示应从哪个用户检索数据。