I have a controller:
[HttpPost]
public ActionResult Create(Auction auction)
{
var db = new EbuyDataContext();
db.Auctions.Add(auction);
db.SaveChanges();
return View(auction);
}
A model:
public class Auction
{
public long Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public decimal StartPrice { get; set; }
public decimal CurrentPrice { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }}
}
And a view:
@model Ebuy.Website.Models.Auction
@using (Html.BeginForm())
{
<p>
//All the information fields...
@Html.LabelFor(model => model.EndTime)
@Html.EditorFor(model => model.EndTime)
</p>
}
When I try to run it I receive the error:
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
The model-controller-view is from a book copied one-to-one.
What is the format that I need to enter to the EndTime
field so I won't have this error?
The error is because you haven't actually set those values correctly, make sure you set them depending on your applications locale. (e.g. dd/mm/yyyy for en-GB
, mm/dd/yyyy for en-US
).
It also looks like your database has been set up to use a datetime2
column and not a datetime
column.
You can either:
A) Modify the database to change the type from datetime2
to datetime
B) Change the types in your Model to be datetime2
, by doing:
[Column(TypeName = "DateTime2")]
public DateTime StartTime { get; set; }
[Column(TypeName = "DateTime2")]
public DateTime EndTime { get; set; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With