워크 플로가 두 개 있습니다.asp.net mvc - 워크 플로에서 페이지/컨트롤러 재사용
1) 사용자가 처음으로 가입합니다. 그들은 3 가지 화면, 기본 사용자 정보, 신용 카드 및 일부 추가 프로필 정보를 봅니다. 그들은 패션과 같은 마법사에서이 3 단계를 완료합니다. 유행 할 때마다 "제출"을하고 현재 화면을 떠나 다음 단계로 넘어갑니다.
2) 사용자가 이미 가입되어 있습니다. 그는이 3 개의 별도 페이지에 대한 탐색 링크를 가지고 있습니다. 그는 순서에 관계없이 업데이트 할 수 있습니다. 그가 구원을 쳤을 때 그는 자신이 속한 페이지를 떠나지 않고 상단에 "신용 카드 정보가 저장되었습니다 ..."또는 무엇이든 표시합니다. 어쩌면 아약스를 사용하거나 아마도 전체 페이지 새로 고침을 사용합니다.
두 개의 워크 플로우 사이에이 3 개의 화면에 대한보기뿐만 아니라 컨트롤러의 코드도 재사용하고 싶습니다. 그러나 if ... then 논리에 따라 다음 위치를 결정할 필요가 없습니다. 마법사의 첫 번째 가입 또는 프로필의 개별 부분 업데이트
아이디어가 있으십니까?
public ActionResult SomeAction(int foo, string bar)
{
MyViewModel model = repository.GetData(foo, bar);
return View("SomeView", model);
}
그래서 때, 컨트롤러 방법은 매우 슬림 유사해야
public ActionResult Index()
{
var model = this.GetModel();
return this.View(Views.Index, model);
}
public ActionResult Save()
{
var model = this.GetModel();
this.TryUpdateModel(model);
this.UserAccountRepository.Save(model.CurrentUser);
return this.RedirectToAction<EditCreditCardController>(c => c.Index());
}
private EditCreditCardModel GetModel()
{
var model = new EditCreditCardModel();
model.CCTypes = ModelHelper.PopulateDropDownWithModel(this.CardTypeRepository, this.CurrentUser.CreditCard.CardType);
model.States = ModelHelper.PopulateDropDownWithModel(this.StateRepository, this.CurrentUser.BillingAddress.State);
model.CurrentUser = this.CurrentUser;
return model;
}
클라이언트 측 마법사를 사용하여 단계별로 진행되는 모양을 사용자에게 제공하고 마지막 단계에서 모든 사항을 제출할 수 있습니까? 그렇게하면 한 가지 작업 만 처리 할 수 있으며 요청에서 요청까지 사용자 상태를 넘겨 줄 걱정할 필요가 없습니다. – R0MANARMY