2012-09-07 4 views
0

여러 번 물어 본 적이 없으면 나를 때리지 마십시오.
MVC를 사용하여 엔티티를 편집하는 방법에 대한 멋진 프레젠테이션을 많이 보았습니다. 모두 내 편집 양식에는 편집 가능한 3 개의 필드 만 포함되므로 사용자가 최종적으로 올바른 값을 입력 할 때까지 클라이언트와 서버간에 데이터를 순환시킬 수 있습니다. 하지만 내 응용 프로그램은 조금 더 복잡하고 조언이 필요합니다.
1) 나는 내가 가장 좋은 방법MVC : 모델 편집, 추가 입력란

비 - 편집 가능한 필드를 다시 채울 필요가 잘못된 입력의 경우 필드 이름 및 CreatedBy
2) 만 편집 가능한 필드 이름
3)를 갖는 엔티티 제품이

이 목적에서 나는 repo에서 비즈니스 개체를 검색하고 결과 viewmodel에 누락 된 값을 할당해야합니다. 많은 가치가있을 수 있습니다. 단계별로 할당해야합니까? 내가 (시도) UpdateModel을 사용해야합니까? AutoMapper (절대 시도하지 않음)를 사용하여 서로 엔티티를 업데이트하는 방법을 지정해야합니까? 이것에 대해 공통적으로 사용되는 방법은 무엇입니까? 편집 가능한 필드가 3 개 이상인 편집 양식에있는 모든 의견을주세요 ... 감사합니다!

+0

"입력이 올바르지 않으면 편집 할 수없는 입력란을 가장 좋은 방법으로 다시 입력해야합니다."라고 말하면 이해가되지 않습니다. 편집 할 수없는 필드가보기의 숨겨진 필드로 저장된다는 의미입니까? 귀하의 견해와 양식 제출시 또는 다른 방법으로 성취하고자하는 것을 보내주십시오. – user1477388

+0

그들은 hiddens에 저장되지 않지만 model이 유효하지 않으면 편집 가능한 값과 편집 할 수없는 값을 모두 포함하는 뷰를 반환해야합니다. 컨트롤러 에서처럼 편집 가능한 것만 얻으면 다른 사람들을 손으로 잡아야합니다. – LINQ2Vodka

답변

0

"hiddens에 저장되지 않지만 모델이 유효하지 않으면 편집 가능한 값과 편집 할 수없는 값을 모두 포함하는 뷰를 사용자에게 반환해야합니다. 컨트롤러에서와 마찬가지로 편집 만 가능합니다. 나는 다른 사람들을 내 손으로 잡아야한다. " 여기에 그렇게하는 방법 : 당신의 modelstate이 유효

<HttpPost()> 
Function Create(company As Company) As ActionResult 

    If ModelState.IsValid Then 

     db.Companies.Add(company) 
     db.SaveChanges() 
     Return RedirectToAction("Index") 

    End If 

    ' if model state is not valid 
     Return RedirectToAction("MyNewAction") 

End Function 

경우 (당신이 그렇게 선택하는 경우, 또는 뷰), 다음 다른 행동을 보냅니다. 별도의 모델을 만들어야하는 경우이를 수행 한 다음 추가 된 필드가있는 새보기로 모델을 보낼 수 있습니다.

+0

이 조치는 사용자에게 정정 할 입력 값을 리턴하지 않습니다. – LINQ2Vodka

+0

'Return RedirectToAction ("Index", New with {.id = company.CompanyId})' – user1477388

+0

ModelState를 호출 한 후 모델 상태 (입력 내용 포함)를 보내면 재설정 될 것입니다. 또한 HTTP 302 리디렉션은 바람직하지 않습니다. 또한 10 개의 편집 가능 필드와 10 개가 아닌 편집 양식이 있다고 가정 해보십시오. 당신은 그들 모두를 배정 할 것인가? 그들은 URL 문자열에 들러 갈 것입니다 :) – LINQ2Vodka