Làm cách nào để thêm phiên vào một fakeContext?Thêm phiên vào httpContext giả trong dự án C# MVC
Chức năng này có chúng tôi xây dựng cho yêu cầu một phần nơi nội dung phải được trả về dưới dạng chuỗi. Chỉ chúng tôi hiện không có phiên trong yêu cầu một phần.
Và tôi không thể thêm chúng như fakeContext.Session = HttpContext.Current.Session
Ai đó là đề xuất?
///<summary>
/// Invoke the partial request and return the result as a string.
///</summary>
///<param name="context">The controller context to use.</param>
///<returns>A string containing the result of the partial request.</returns>
public String InvokeAsString(ControllerContext context)
{
var stringBuilder = new StringBuilder();
//create memory writer used for httpresponse.
var memoryWriter = new StringWriter(stringBuilder);
//create a fake response
var fakeResponse = new HttpResponse(memoryWriter);
//create a fake context.
var fakeContext = new HttpContext(HttpContext.Current.Request, fakeResponse);
var oldPrincipal = context.HttpContext.User;
fakeContext.User = oldPrincipal;
//create a fake controllercontext to use for the default invoke action.
var fakeControllerContext = new ControllerContext(new HttpContextWrapper(fakeContext), context.RouteData, context.Controller);
var oldContext = HttpContext.Current;
HttpContext.Current = fakeContext;
ManagedWebSessionContext.Bind(
HttpContext.Current,
SessionManager.SessionFactory.OpenSession(new Interceptor()));
//perform the default invoke action.
Invoke(fakeControllerContext);
HttpContext.Current = oldContext;
//Flush memory and return output
memoryWriter.Flush();
var content = stringBuilder.ToString();
return content;
}