Эй, проблема в том, что контроллер редактирования в ASP.NET MVC 2 не работает. Я пробовал много способов, и ничего не работает.
Вот пример кода:
[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>
<% } %>
Если я работаю на родной модели пользователя, она тоже не работает. В чем дело? Где я допустил ошибку?
Кстати, я должен использовать модель представления, чтобы добавить (в будущем) некоторые флажки (цвет волос, длина и т. Д.) Для моего пользователя.
Спасибо за ваше время и помощь.