Веб-сервер моей хостинговой компании продолжает жаловаться, что класс не помечен как [Serializable].MVC 4 Почему мне приходится сериализоваться на сервере, но не локально?
Когда я запускаю его на своем локальном хосте, он работает нормально, без проблем. Как только я загружу его на сервер, он просит его сериализовать его?
Пример Класс:
public class Notification
{
public string Message { get; set; }
public NotificationType NotificationType { get; set; }
public static Notification CreateSuccessNotification(string message)
{
return new Notification { Message = message, NotificationType = NotificationType.Success};
}
public static Notification CreateErrorNotification(string message)
{
return new Notification { Message = message, NotificationType = NotificationType.Error };
}
}
, что я использую в базовом контроллере. Этот класс хранится в TempData при переадресации на другой метод, может ли это быть причиной? Но все же, почему на сервере, а не на моем локальном компьютере?
public abstract class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
_notifications = TempData["Notifications"] == null ? new List<Notification>() : (List<Notification>)TempData["Notifications"];
_model = TempData["Model"];
base.OnActionExecuting(filterContext);
}
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
if (filterContext.Result is RedirectToRouteResult)
{
if (_model != null)
TempData["Model"] = _model;
if (_notifications.Count > 0)
TempData["Notifications"] = _notifications;
}
base.OnResultExecuting(filterContext);
}
}
Контроллер перекрывая этот раз добавляет уведомления и модель, если это необходимо, а затем перенаправлять к другому действию.
есть ли способ для localhost, чтобы имитировать поведение, как на сервере? так что, если я не установлю класс для сериализации, он будет вызывать ту же ошибку? – NicoTek