首页 > 解决方案 > 消息未保存到数据库

问题描述

我在将消息保存到我的数据库时遇到问题。我正在使用 Twilio 帐户并发送了消息。但是,我无法将其保存到数据库中。在我看来,我输入一条消息,然后通过发件人发送。但是,在检查时_context.Messages.Add(message);我收到一条消息:

“该功能需要所有线程运行”

所以我单击它旁边的小图标,然后它显示 null 而不是上面的消息。

public class ApplicationDbContext : DbContext
{
  public DbSet<Message> Messages { get; set; }
  public ApplicationDbContext()
          : base()
{
 }
            
public static ApplicationDbContext Create()
{
                        return new ApplicationDbContext();
}
}

public class MessageController : Controller
    {
private ApplicationDbContext _context;
            
private IMessageSender _messageSender;
public MessageController(IMessageSender messageSender)
{
  this._messageSender = messageSender;
   _context = new ApplicationDbContext();
 }
            
[ActionName("MessageStatus")]
 public ActionResult Send(Message message)
 {
  var viewModel = new MessageViewModel
    {
     Message = new Message()
                           
            
};
 _context.Messages.Add(message);
 _messageSender.Send(message);
  return View("MessageStatus", viewModel);
 }
    }
    
my view
    
@model MessagingWebApplication.ViewModel.MessageViewModel
        
@{ ViewBag.Title = "New";
  Layout = "~/Views/Shared/_Layout.cshtml";
}
 <h2>New Sms</h2>
        
@using (Html.BeginForm("MessageStatus", "Message"))
 {
 @Html.ValidationSummary()
  <div class="form-group">
  @Html.LabelFor(m => m.Message.Reciever)
  @Html.TextBoxFor(m => m.Message.Reciever, new { @class = "form-control" })
  @Html.ValidationMessageFor(m => m.Message.Reciever)
    </div>
 <div class="form-group">
  @Html.LabelFor(m => m.Message.Sender)
  @Html.TextBoxFor(m => m.Message.Sender, new { @class = "form-control" })
  @Html.ValidationMessageFor(m => m.Message.Sender)
  </div>
   <div class="form-group">
   @Html.LabelFor(m => m.Message.Body)
   @Html.TextBoxFor(m => m.Message.Body, new { @class = "form-control" })
   @Html.ValidationMessageFor(m => m.Message.Body)
  </div>
        
  @Html.HiddenFor(m => m.Message.Id)
  @Html.AntiForgeryToken()
    <button type="submit" class="btn btn-primary">Send</button>

标签: asp.net-core

解决方案


添加消息后需要保存

 _context.Messages.Add(message);
 _context.SaveChanges();

或异步

  await _context.Messages.AddAsync(message);
  await _context.SaveChangesAsync();

推荐阅读