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>
<% } %>
네이티브 사용자 모델에서 작업하는 경우에도 작동하지 않습니다. 뭐가 문제 야? 어디에서 실수 했습니까?
덧붙여서, 필자는 뷰 모델을 사용하여 (내 머리에) 사용자에게 몇 가지 체크 박스 (머리 색깔, 길이 등)를 추가했습니다.
시간을내어 도와 주셔서 감사합니다.
"Project.ViewModels.UserViewModel 형식의 모델을 업데이트 할 수 없습니다."라는 오류 메시지가 나타났습니다. 무엇이 잘못되었는지 잘 이해하지 못합니다. 몇 가지 자습서를 읽었으므로이 메서드는 효과가있었습니다. – user576551
문제는 귀하의 사용자 개체와 함께 생각합니다. 어떤 종류의 개체? UpdateModel (edit.User, "User", new string [] { "Email"}); 사용자의 Email 속성 만 업데이트하려고 시도 할 수 있습니다. – Wim
당신이 옳다고 나는 생각한다. 나는 공급자 또는 validatiors없이 새로운 MVC2 응용 프로그램을 만들었다. 잘 했어. 사용자 개체는 SQL Server 2008에서 가져온 것입니다. 기본 사용자 클래스를 가진 편집 사용자 필드입니다. – user576551