먼저이 질문에 답하기 만하면됩니다. 나는 누군가의 시간을 낭비하고 싶지 않다 (나는 게시하기 전에 오랫동안 검색을 시도했다).MVC3의 ViewModel에서 데이터베이스의 정보를 업데이트하십시오.
MVC3 프로젝트에서 내 데이터베이스 (EntityFramework 사용)의 정보를 업데이트하는 데 문제가 있습니다. 나는이처럼 보이는 프로파일 컨트롤러 (테스트를 위해 지금 정적 정보와 널 (NULL)의 INT 사용)이 있습니다
@using (Html.BeginForm()) {
<div class="editor-label">
<label for="fname">First Name:</label>
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
: 다음과 같이 시작하는 강력한 형식의 뷰를 가지고
public ViewResult Edit(int? memberID)
{
Member member = repository.Members.GetMember(12985);
return View(new ProfileEditViewModel
{
MemberID = member.id,
FirstName = member.fname,
LastName = member.lname,
HomePhone = member.home_phone,
CellPhone = member.cell_phone,
Address = member.street,
City = member.city,
State = member.state,
Zip = member.zip,
Email = member.email,
Sex = member.sex,
MemberType = member.membertype,
TypeOfCar = member.typeofcar
});
}
및 MemberID를 제외한 내 ViewModel의 각 속성에 대한 양식 문자열.
[HttpPost]
public ActionResult Edit(ProfileEditViewModel memberViewModel)
{
Member member = repository.Members.GetMember(memberViewModel.MemberID);
if (ModelState.IsValid)
{
member.fname = memberViewModel.FirstName;
member.lname = memberViewModel.LastName;
member.home_phone = memberViewModel.HomePhone;
member.cell_phone = memberViewModel.CellPhone;
member.street = memberViewModel.Address;
member.city = memberViewModel.City;
member.state = memberViewModel.State;
member.zip = memberViewModel.Zip;
member.email = memberViewModel.Email;
member.sex = memberViewModel.Sex;
member.membertype = memberViewModel.MemberType;
member.typeofcar = memberViewModel.TypeOfCar;
repository.Members.UpdateMember(member);
return RedirectToAction("Summary");
}
else
{
//there is something wrong with the data
return View(member);
}
문제는 내가 회원의 정보를 업데이트 할 때 나는 "시퀀스에 요소가없는"얻을 것입니다 오류 : 그것은 다시 내 컨트롤러
<p>
<input type="submit" value="Save" />
@Html.ActionLink("Cancel", "Summary")
</p>
와 그때 보완 방법을 닫습니다 비록 내가 업데이트 페이지를 얻을 수 있었기 때문에 내가 지정한 MemberID가 유효하다는 것을 알았지 만, 프로젝트의이 부분이 시작되기 전에 완전히 테스트되었으므로 UpdateMember 메소드가 올바르게 작동한다는 것을 알고있다. 업데이트가 어디서 잘못 되었습니까?