我正面临有关HttpContext的问题,该问题由于设计而丢失了。
我使用 AutoFac 在控制器中注入一组不同的控制器。
该控制器的唯一职责是遍历实现View
的这组控制器_ previewPresentations ,并在最后调用特定的实现。
public class OfferingController : OfferingBaseController
{
private readonly IEnumerable<IOfferingPresentation> _previewPresentations;
public OfferingController(IEnumerable<IOfferingPresentation> offeringPresentations)
: base()
{
_offeringPresentation = offeringPresentations;
}
public async Task<ActionResult> View(Guid? id)
{
foreach (var item in _previewPresentations)
{
if (item.IsImplentation(id))
{
await item.View(id).ConfigureAwait(false);
}
}
return View("Error");
}
}
到目前为止,该方法工作正常,但是由于OfferingBaseController
为空,所有依赖于Request
中HttpContext的函数都失败了:
public class OfferingBaseController:Controller
{
protected string GetCookieValue(string key)
{
var cookie = Request.Cookies[key];
return cookie?.Value;
}
}
我认为这是因为:
await item.View(id).ConfigureAwait(false);
以某种方式HttpContext丢失并且无法在我的基本控制器中访问
OfferingBaseController.
有没有解决方法?