我的应用程序分为3个不同的层。 WEB,BLL和DAL。 我从网络层设置了一个cookie,然后我从另一个页面请求它将它显示给用户。
HttpContext.Current.Response.Cookies["FlashMessenger"]["Type"] = "error";
HttpContext.Current.Response.Cookies["FlashMessenger"]["Message"] = "Aucun vol trouvé pour la date donnée. S'il vous plaît affiner votre recherche.";
当我从BLL做同样的事情并试图显示它时,返回的消息就会被破坏。
var flashMessengerC = Request.Cookies["FlashMessenger"];
var message = flashMessengerC["Message"];
var type = flashMessengerC["Type"];
MsgLBL.Text = message;
这就是我收到的“Aucunvoltrouvépour la datedonnée.S'ilvousplaétaffinervotre recherche。”
我尝试对Html进行编码,然后解码,但它也是如此。 我查看了浏览器cookie并且格式正确。
是什么导致这个?
我将不胜感激。
谢谢
答案 0 :(得分:0)
无法100%确定,但听起来您的BLL正在为您的UI运行不同的线程文化。让你的BLL请求cookie并不是一个好的设计 - 最好将他们实际需要的信息传递给他们,而不是将它绑定到特定的实现,例如:
class FlashMessengerInfo
{
public string Message { get; set; }
public string Type { get; set; }
}
class MyBLL
{
public MyBLL(FlashMessengerInfo messageInfo)
{
}
}
来自web ui,你将填充这个对象并将其传递给你的BLL,让它与HttpRequest对象脱钩。