동일한 도메인 개체를 편집하는 데 3 개의 뷰 모델이 있습니다. AutoMapper를 사용하여 도메인 객체의 뷰 모델에 매핑합니다.여러 viewmodels에 대해 동일한 actionresult 메서드를 사용합니까?
는
if (Roles.IsUserInRole("administrators"))
{
viewName = "EditAdmin";
editOrder = Mapper.Map<Order, ViewModels.Order.Admin_ViewModel>(order);
}
else if (Roles.IsUserInRole("administrators"))
{
viewName = "EditTechnician";
editOrder = Mapper.Map<Order, ViewModels.Order.Technician_ViewModel>(order);
}
else if (Roles.IsUserInRole("clients"))
{
viewName = "EditClient";
editOrder = Mapper.Map<Order, ViewModels.Order.Client_ViewModel>(order);
}
RedirectToRoute(viewName, editOrder);
POST 이 모든 viewmodels에 대해 동일한 방법을 사용하는 것이 가능 GET? ViewModels을 "ViewModelbase"에서 상속하게 할 수 있습니까? 없이 성공 :(사전에
많은 감사와 함께이 시도
편집 :! 이 내 방법은 지금 모습입니다 :
public ActionResult EditAdmin(ViewModels.Order.Admin_ViewModel model) {...}
어떤 아이디어
UPDATE : 컴포지션을 사용하는 방법을 이해할 수 없었습니다 (몇 시간 동안 시도해 보았습니다). 그래서 이것을 정리하여 조금 깔끔하게 정리했습니다. 내 세 viewmodels :
[HttpPost]
[Authorize(Roles = "administrators")]
public ActionResult EditAdmin(Admin_ViewModel model)
{
return SaveViewModel(model);
}
[HttpPost]
[Authorize(Roles = "technicians")]
public ActionResult EditTechnician(Technician_ViewModel model)
{
return SaveViewModel(model);
}
[HttpPost]
[Authorize(Roles = "clients")]
public ActionResult EditClient(Client_ViewModel model)
{
return SaveViewModel(model);
}
SaveViewModel은 다음과 같습니다
protected ActionResult SaveViewModel(dynamic model)
{ ... }
나는이 솔루션에 대해 좋은 느낌하지 않습니다. 포인터 좀 주실 래요?
위의 업데이트를 참조하십시오. 감사! –
@ JimH 세 가지 ViewModels를 공유해 주실 수 있으면 시도해 볼 수 있습니다. – Rajeesh