Я и программист MVC1, новичок в MVC2.
Данные не будут сохранены в базе данных в сценарии редактирования. Создание отлично работает.
Контроллер:
//
// POST: /Attendee/Edit/5
[Authorize(Roles = "Admin")]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Attendee attendee)
{
if (ModelState.IsValid)
{
UpdateModel(attendee, "Attendee");
repository.Save();
return RedirectToAction("Details", attendee);
}
else
{
return View(attendee);
}
}
Модель:
[MetadataType(typeof(Attendee_Validation))]
public partial class Attendee
{
}
public class Attendee_Validation
{
[HiddenInput(DisplayValue = false)]
public int attendee_id { get; set; }
[HiddenInput(DisplayValue = false)]
public int attendee_pin { get; set; }
[Required(ErrorMessage = "* required")]
[StringLength(50, ErrorMessage = "* Must be under 50 characters")]
public string attendee_fname { get; set; }
[StringLength(50, ErrorMessage = "* Must be under 50 characters")]
public string attendee_mname { get; set; }
}
Я пытался добавить [Bind (Exclude = "attendee_id")] над объявлением класса, но затем значение атрибута accedee_id установлено в '0'.
Вид (строго типизированный):
<% using (Html.BeginForm()) {%>
...
<%=Html.Hidden("attendee_id", Model.attendee_id) %>
...
<%=Html.SubmitButton("btnSubmit", "Save") %>
<% } %>
В основном, хранилище. Save (); функция, кажется, ничего не делает. Я предполагаю, что это как-то связано с нарушением ограничения первичного ключа. Но я не получаю никаких ошибок от SQL Server. Приложение работает нормально, но данные никогда не сохраняются в базе данных.