У меня есть следующий код в моем HomeController:
public ActionResult Edit(int id)
{
var ArticleToEdit = (from m in _db.ArticleSet where m.storyId == id select m).First();
return View(ArticleToEdit);
}
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Article ArticleToEdit)
{
var originalArticle = (from m in _db.ArticleSet where m.storyId == ArticleToEdit.storyId select m).First();
if (!ModelState.IsValid)
return View(originalArticle);
_db.ApplyPropertyChanges(originalArticle.EntityKey.EntitySetName, ArticleToEdit);
_db.SaveChanges();
return RedirectToAction("Index");
}
А это представление для метода Edit:
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="headline">Headline</label>
<%= Html.TextBox("headline") %>
</p>
<p>
<label for="story">Story <span>( HTML Allowed )</span></label>
<%= Html.TextArea("story") %>
</p>
<p>
<label for="image">Image URL</label>
<%= Html.TextBox("image") %>
</p>
<p>
<input type="submit" value="Post" />
</p>
</fieldset>
<% } %>
Когда я нажимаю кнопку отправки, я получаю сообщение об ошибке: {" Преобразование типа данных datetime2 в тип данных datetime привело к значению вне допустимого диапазона. \ R \ nОператор был прерван. "}
Есть идеи, в чем проблема? Я предполагаю, что редактирование метод пытается обновить опубликованное значение в БД до отредактированного, но по какой-то причине ему это не нравится ... Хотя я не понимаю, почему указана дата, поскольку она ' s не упоминается в методе редактирования контроллера?
необходимо соответствовать формату ввода поля даты к необходимому формату объекта, который является yyyy/mm/dd