2014-11-06 3 views
0

편집직렬화 모델 데이터

나는 신용 카드를 고객의 사전 승인을 시도하는 프로젝트를 진행하고있다. 이 응용 프로그램

  1. 실제 신용 승인

이를 위해 타사 웹 서비스를 호출하는 등 다양한 일을 할 것입니다 WCF 서비스를 소비 고객에 대한 정보 전달 다른 응용 프로그램에서 호출 할 수 새로운 시스템은 ASP.NET MVC를 사용하여 개발되고 있습니다.

그래서 초기 작품이 있는데,이 mvc 응용 프로그램에 특정 데이터를 전달하고 조회 결과를보기에 표시 할 수 있습니다.

고객이 승인되면 고객은 고객이 제안을 수락할지 여부를 나타내야합니다. 고객이 원하는 경우 신용 카드 제품 중 4 개 중 1 개를 표시해야합니다. ACH 지불을 원할 경우 등. 고객이 오퍼를 거절하면 사용자는 거부 이유를 선택해야합니다.

그래, 그게 전부 잘 작동하고있어.

유효성 검사가 실패 할 경우 어떻게해야합니까? 조건부 유효성 검사를 위해 여러 가지 필수 if 속성을 지정했습니다. 사용자가 신용 카드 제품을 선택하는 것을 잊어 버리면 고객이 제안을 수락하면 조건부 확인에 실패합니다. 이러한 드물지만 생각할 수있는 시나리오에서 제공되는 카드 제품, 거부 사유, 고객 이름 등 신용 결과를 보내야합니다.

그래서 실제로 이해해야 할 사항은 어떻게 보낼 수 있습니까? 크레디트 응답 데이터는 결정 정보에 사용중인 컨트롤러에 백업됩니다.

은 초기 컨트롤러는 단순히 내가 다양한 사용자 옵션 마지막으로

@using (Html.BeginForm ("Save", "Prescreen", FormMethod.Post)) 
{ 
    ...Control definitions left out... 
} 

, "저장"조치의 컨트롤러에 대한 양식을 정의하는이 컨트롤러의 뷰에서 인덱스

[HttpPost] 
public ViewResult Index (PrescreenCCRequest request) 
{ 
    WCFClient client = new WCFClient (); 

    PrescreenCCResult result = client.ProcessPrescreen (request); 

    return View (result); 
} 

라고 예 :

답변

1

MVC의 DLL :

그들이 프레임 워크 참조에 포함되어야로 MVC가 제대로 설치되지 않았을 수 있습니다처럼 소리를 참조 관리자를 사용할 때 DLL을 찾을 수없는 경우.여기 내 VS의 RM에 보여줍니다 무엇

당신은 비주얼 스튜디오 컨트롤러의 맞은 편에

enter image description here

지속 데이터에 내장 된 nuget package manager 사용하여 MVC를 설치 살펴 제안 :

이가이다 주제를 독자적으로 가지고 있으며 다양한 접근법을 가지고 있습니다. 데이터 보존 기간 등 많은 요인에 따라 달라집니다.

데이터가 지속 시간이 짧으면 수명이 짧아지며 요청을 가로 질러 액세스 할 때 Session 개체 나 TempData 개체를 사용하게됩니다.

데이터 일련 화 :

데이터의 형식은 무엇입니까? Json에 있다면 객체 데이터를 사용자 정의 데이터 모델로 유효성을 검사하는 데 사용할 수있는 매우 유연한 객체 직렬/병렬 변환기가 있으므로 NewtonSoft을 사용하는 것이 좋습니다.

+0

정보 주셔서 감사합니다. 나는 몇 가지 질문을 혼란스럽게 생각합니다. 사과. 지속성의 관점에서 볼 때 초기 컨트롤러에서 보낸 원본 데이터는 유효성 검사가 완료 될 때까지 기다려야합니다. 일부 사용자는 몇 번 시도 할 수 있습니다. 그게 TempData에 대해 받아 들일 수 있다면, 나는 그것을 연구 할 수 있습니다. 직렬화 관점에서 데이터는 JSON이 아닌 클래스입니다. "편집"데이터를 저장하는 컨트롤러에 다시 "편집"모델과 함께보기의 초기 모델을 보낼 수있는 간단한 방법을 찾고있었습니다. –

+1

@PaulStoner를 기반으로 가정을 만들어야합니다. 당신이 소비하고있는 WCF 서비스라고 가정합니다. 서비스 참조 메타 데이터는 유효성 검사 로직을 작성하는 데 필요한 정보를 제공하므로 직접 서비스 클래스의 유효성을 검사하는 것이 좋습니다. 내가 왜 컨트롤러에서 직접 검증 로직을 추상화하고 동일한 컨트롤러 또는 더 나은 메소드 호출에서 유효성 검사 오류나 예외를 반환 할 때 다른 컨트롤러에 데이터를 전달해야하는지 잘 모르겠습니다. 많은 정보를 제공해 주시면 제가 예를들 수 있습니다. upvote를 기억하십시오. 감사합니다 – geekonedge

+0

Bosman, 고마워요. 나는 upvote하는 것을 좋아할 것이다. 그러나 나는 충분한 담당자가 아직 없다. 필요한 정보를 제공하기 위해 질문을 편집합니다. –