ASP .Net & SessionState - PullRequest
       3

ASP .Net & SessionState

3 голосов
/ 25 февраля 2009

Глядя на источник MVC сегодня:

открытый класс MvcHandler: IHttpHandler, IRequiresSessionState

зачем ему SessionState? Разве MVC не пытается сделать что-то RESTful?

Я знаю, что причиной использования состояния сеанса в MVC является передача некоторых данных (не могу вспомнить термин, но состояние сеанса можно заменить другими средами). Я думаю, что мой настоящий вопрос:

почему я не могу написать приложение MVC, указать и иметь возможность полностью отключить состояние сеанса?

1 Ответ

3 голосов
/ 25 февраля 2009

Требуется из-за TempData. TempData похожа на ViewData, за исключением того, что однажды вернется в вид и обратно. Для этого ему нужен файл cookie.

Есть способ обойти это путем создания фиктивного объекта, я просто не могу вспомнить, как.

Нашел, благодаря Кигг .

public class EmptyTempDataProvider : ITempDataProvider
{
    public IDictionary<string, object> LoadTempData(ControllerContext controllerContext)
    {
        return new Dictionary<string, object>();
    }

    public void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values)
    {
    }
}

Затем вы должны создать базовый контроллер и использовать его при создании других ваших контроллеров.

protected BaseController()
{
    TempDataProvider = new EmptyTempDataProvider();
}

Это должно позволить вам отключить состояние сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...