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.