Я работаю над сайтом чата и уже некоторое время получаю эту досадную ошибку, действительно не знаю, что это может быть. У меня есть этот класс модели:
public class ChatModel : PageModel
{
public string UserName { get; set; }
public ICollection<string> Espectators { get; set; }
public ICollection<string> Chatters { get; set; }
public string Mediator { get; set; }
public Conversation Conversation{ get; set; }
public Lazy<IConcurrentCaching> _cache { get; set; }
public ChatModel()
{
}
public ChatModel(string connString, string bulkTime, string username, ICollection<string> espectators = null, ICollection<string> chatters = null, string mediator = null, string conversationName = null)
{
//build the class, boring stuff
}
public void OnGet()
{
}
}
Эта модель является частью страницы Razor. Это мой контроллер для представления чата:
public class ChatController: Controller
{
public ChatController()
{
}
public IActionResult Chat(ChatModel model)
{
return View(model);
}
}
И вызов для действия контроллера:
public IActionResult CreateChat(string username, string conversationName)
{
if (_cache.Value.Get<List<string>>("ChatList") == null)
{
_cache.Value.Set<List<string>>("ChatList", new List<string>(), 1440);
}
ChatModel model = new ChatModel(_op.Value.ConnectionString, _op.Value.BulkLoadCacheTimeInMinutes, username, conversationName: conversationName);
model.Chatters.Add(username);
return RedirectToAction("Chat","Chat", model);
}
Почему-то, когда я вызываю метод контроллера для представления чата,он выдает следующее исключение:
InvalidOperationException: не удалось создать экземпляр типа 'Microsoft.AspNetCore.Http.HttpContext'. Сложные типы, связанные с моделью, не должны быть абстрактными или значениями и должны иметь конструктор без параметров. Или же установите для свойства 'HttpContext' ненулевое значение в конструкторе Chatter.UI.Web.Views.Chat.ChatModel. Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.CreateModel (ModelBindingContext bindingContext)
Самое странное, что я даже не использую HttpContext в классе ChatModel. Я пытался использовать DI для внедрения IHttpContextAccessor в мой класс (хотя я не понимаю, как это могло бы помочь, но я видел это как решение онлайн);это не сработало. Я также пытался добавить синглтон при запуске для HttpContext, но безрезультатно. Будем весьма благодарны за любые идеи о том, что происходит.