개체를받을 ASP.NET MVC 응용 프로그램에서 양식을 디자인하고 있습니다. 이제양식에서 오는 LINQ 모델을 업데이트하는 가장 좋은 방법
public void SavePerson(Person person)
{
using (var dc = new SIGAPDataContext())
{
if (person.IsNew)
{
dc.People.InsertOnSubmit(person);
}
else
{
dc.People.Attach(person, true);
}
dc.SubmitChanges();
}
}
을 :
public void SavePerson(Person person)
{
_peopleRepository.SavePerson(person);
}
그리고 저장소의 SavePerson
호출이 수행합니다
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, Person person)
{
peopleService.SavePerson(person);
return Redirect("~/People/Index");
}
서비스의 SavePerson
호출이이 작업을 수행 : 여기에 일반적인 편집 작업이 생겼는지 , 이것은 새 레코드를 만들 때 잘 작동합니다. 그러나 모든 양식 요소없이 업데이트하면 다른 필드가 null입니다. 예를 들어, 내 Person 모델은 편집 양식에 표시되지 않는 경우 Nulled 인 NationalityID 특성을가집니다.
양식에서 가져온 필드만으로 모델을 업데이트하는 것이 가장 좋은 방법은 무엇입니까?
Person persistedPerson = peopleService.GetPerson(person.ID);
persistedPerson.Name = person.Name;
persistedPerson.DateOfBirth = person.DateOfBirth
// etc...
또는이 작업을 수행하는 다른, 청소기 방법이 : 내가 먼저 데이터베이스에서 레코드를 가져과 같이 수동 등록의 갱신해야합니까?
이제 UpdateModel을 사용하여 내 양식에서 중첩 된 엔티티를 사용하는 방법 만 필요합니다. 고마워요! – changelog
필요하다면 다른 화이트리스트와 접두사를 사용하여 서브 모델로 업데이트하십시오. – tvanfosson
이 질문에 대한 내 대답보기 : http://stackoverflow.com/questions/594412/model-binding-of-nested-properties-in-asp-net-mvc/594458#594458 – tvanfosson