HTML value in Cookie



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

我正在根据用户在表单中输入的数据构建一个简单的 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);

当我阅读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 仅指示应从哪个用户检索数据。

最新更新