Cookie中的HTML值

时间:2013-11-08 21:33:01

标签: c# .net

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

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

2 个答案:

答案 0 :(得分:1)

使用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);

答案 1 :(得分:1)

分隔您的显示数据和实际业务数据。您感兴趣的表格上有哪些价值?创建一个包含字段的对象,并将其存储在会话中。 Cookie专为小型ID而设计,而不是您使用的数据。意识到每个页面加载都会带来那个cookie。

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