2011-10-28 6 views
0

asp.net mvc 3에서 편집 작업의 많은 예제를 보았습니다. 그래서 혼란 스럽습니다. 예를 들어 UpdateModel 및 TryUpdateModel 메서드는 어떻게 작동합니까? 또는 모든 필드가 아닌 필드를 업데이트하려는 경우 편집 작업을 구현하는 방법은 무엇입니까?asp.net mvc에서 편집 작업 구현 3

누구나 저에게 asp.net 3에서 편집 작업을 구현하는 방법에 대한 링크를 제공 할 수 있습니까?

답변

1

원하는 필드 만 업데이트하는 가장 좋은 방법은 별도의보기 모델을 만드는 것입니다. 이

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

그리고 당신은 IsAdmin 속성에 대한 사용자 공급 값을 허용하지 않으려는 가정 같은 예를 들어, 상상 당신이있어 사용자 클래스. 당신은 클라이언트 측에서 IsAdmin를 제공 할 possiblity를가 없습니다,보기이 (NO 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); 
} 

이 방법을 만들 수 있습니다. 보기 모델을 도메인 모델에 매핑하려면 AutoMapperJimmy Bogard's blog을 살펴볼 수도 있습니다. Jimmy는 asp.net mvc에서 ViewModels 및 AutoMapper를 사용하는 방법에 대한 게시물을 얻었습니다.

+0

UpdateModel 및 TryUpdateModel은 어떻게 작동합니까? 그들이 사용하는 데이터 제공 업체는 무엇입니까? EdituserViewModel을 뷰와 바인딩하는 방법은 무엇입니까? – Alexandre

+0

뷰의 @model은 EditUserViewModel이어야하며, 일반적으로 편집자를 생성해야합니다. 데이터 제공 업체에 대해 이해할 수 없으며, 값 제공 업체를 의미합니까? UpdateModel 및 TryUpdate 모델은 바인딩을 수행하는 초기 객체를 취합니다. – archil

+0

UpdateModel 및 TryUpdate 모델 바인딩에 대한 정보는 어디서 찾을 수 있습니까? 어떤 링크를 주시겠습니까? 그것에 대해 아무 것도 발견하지 못했습니다. – Alexandre

관련 문제