-2

i am new to asp.net and i have a question. I have created a simple form fro sending sms, however my id always stays null. Can you please advise on what am i doing wrong? I used exactly the same form in my other page and it worked fine.

@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>
}

My model
public class Message
    {
        [Key]
        public int Id { get; set; }

        [Required]
        public string Sender { get; set; }

        [Required]
        public string Reciever { get; set; }

        [Required]
        public string Body { get; set; }


    }

Method used for sending

public ActionResult Send(Message message)
        {
            var viewModel = new MessageViewModel
            {
                Message = new Message()

            };
            _context.Add(message);
            _context.SaveChanges();
            _messageSender.Send(message);
            return View("MessageStatus", viewModel);
        }

here _context.SaveChanges(); i get SqlException: Cannot insert the value NULL into column 'Id', table 'MyDatabase.dbo.Messages'; column does not allow nulls. INSERT fails.

1 Answers1

0

My issue was that i had failed when updating the database so i just followed this How to delete and recreate from scratch an existing EF Code First database