2011-01-15 3 views
0

안녕하세요, 문제는 ASP.NET MVC 2의 컨트롤러가 작동하지 않는다는 것입니다. 나는 많은 방법을 시도하고 아무것도 작동하지 않습니다. 여기ASP.NET MVC 2 편집 컨트롤러가 viewmodel을 사용하여 작동하지 않습니다.

[Authorize] 
public ActionResult Edit() { 
    var edit = new UserViewModel { 
     User = Database.Users.Single(u => u.UserName == User.Identity.Name) 
    }; 

    return View(edit); 
} 

[Authorize] 
[HttpPost] 
public ActionResult Edit(FormCollection formCollection) { 
    var edit = new UserViewModel { 
     User = Database.Users.Single(u => u.UserName == User.Identity.Name) 
    }; 

    // TODO: try, catch 
    UpdateModel(edit, "User"); 
    Database.SaveChanges(); 

    return View(edit); 
} 

뷰 모델 클래스는 다음과 같습니다 :

다음은 샘플 코드는

public class UserViewModel { 
    public User User { get; set; } 
} 

나는 데이터베이스에이 사용자 모델을 업데이트하려면 어떻게해야합니까? 내가 사용하는 순간. 전자 메일 필드 :

<% Html.EnableClientValidation(); %> 
<% using (Html.BeginForm()) {%> 
<div> 
    <div class="UserFieldLeft"><%: Html.LabelFor(model => model.User.Email) %></div> 
    <div class="UserFieldRight"><%: Html.TextBoxFor(model => model.User.Email, new { style="width: 200px" }) %></div> 
    <div class="UserFieldHelper"><%: Html.ValidationMessageFor(model => model.User.Email) %></div> 
    <p><input class="UserFieldInput" type="submit" value="Zmień email" /></p> 
</div> 
<% } %> 

네이티브 사용자 모델에서 작업하는 경우에도 작동하지 않습니다. 뭐가 문제 야? 어디에서 실수 했습니까?

덧붙여서, 필자는 뷰 모델을 사용하여 (내 머리에) 사용자에게 몇 가지 체크 박스 (머리 색깔, 길이 등)를 추가했습니다.

시간을내어 도와 주셔서 감사합니다.

답변

0

접두사 "사용자"가 필요하지 않습니다.

UpdateModel(edit); 

. formsCollection에서 UserCollection은 User.Email의 키 여야합니다. 이것은 User Object의 Email 속성에 매핑되어야합니다.

+0

"Project.ViewModels.UserViewModel 형식의 모델을 업데이트 할 수 없습니다."라는 오류 메시지가 나타났습니다. 무엇이 잘못되었는지 잘 이해하지 못합니다. 몇 가지 자습서를 읽었으므로이 메서드는 효과가있었습니다. – user576551

+0

문제는 귀하의 사용자 개체와 함께 생각합니다. 어떤 종류의 개체? UpdateModel (edit.User, "User", new string [] { "Email"}); 사용자의 Email 속성 만 업데이트하려고 시도 할 수 있습니다. – Wim

+0

당신이 옳다고 나는 생각한다. 나는 공급자 또는 validatiors없이 새로운 MVC2 응용 프로그램을 만들었다. 잘 했어. 사용자 개체는 SQL Server 2008에서 가져온 것입니다. 기본 사용자 클래스를 가진 편집 사용자 필드입니다. – user576551

관련 문제