Реализация действия редактирования в asp.net MVC 3 - PullRequest
0 голосов
/ 28 октября 2011

Я видел много примеров действий по редактированию в asp.net mvc 3, и поэтому я запутался. Например, как работают методы UpdateModel и TryUpdateModel? Или как реализовать действие редактирования, если я хочу обновить не все поля?

Может кто-нибудь дать мне ссылку о реализации действия редактирования в asp.net 3?

1 Ответ

1 голос
/ 28 октября 2011

Лучший способ обновить только нужные поля - создать для него отдельную модель представления. Например, представьте, что у вас есть пользовательский класс, подобный этому

public class User
{
     public int Id {get;set;}
     public string UserName {get;set}
     public bool IsAdmin {get;set;}
}

И предположим, вы не хотите, чтобы пользователь предоставил значение для свойства IsAdmin. Вы создаете модель представления следующим образом (без поля IsAdmin)

public class EditUserViewModel
{
     public int Id {get;set;}
     public string UserName {get;set}
}

И действие редактирования псевдо-что-то

public ActionResult Edit(EdituserViewModel model)
{
     If(ModelState.IsValid)
     {
        User user = _repository.GetUser(model.Id);
        user.UserName = model.UserName;
        _repository.Update(user);
        return RedirectToAction("Index");
     }
     return View(model);
}

Таким образом, невозможно предоставить IsAdmin со стороны клиента. Вы также можете взглянуть на AutoMapper и блог Джимми Богарда для сопоставления моделей представлений с моделями доменов. Джимми получил сообщение об использовании ViewModels и AutoMapper в asp.net mvc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...