Эй, проблема в том, что контроллер редактирования в 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
Я думаю, проблема связана с вашим объектом User.Какой это объект? Вы можете попробовать UpdateModel (edit.User, «Пользователь», новая строка [] {«Электронная почта»}); Только обновить свойство электронной почты пользователя – Wim
Я думаю, что вы правы. Я только что создал новое приложение MVC2 без каких-либо поставщиков или валидаторов. Хорошо работает. Пользовательский объект взят из SQL Server 2008. Он представляет собой поля пользователя компиляции с классом членства по умолчанию. – user576551