MVC - Przechwycenie danych z kontrolera

Odpowiedz Nowy wątek
2018-11-28 12:43
0

Witam

Mam sobie kontroler, a w tym kontrolerze metody, które zwracają JsonResult.
Jak FE odpali jakąś metodę w kontrolerze to przekazuje jej parametry i tam w środku tej metody są odpalane metody z WCFa, a na koniec zwracany jest wynik do FE w postaci JSONa.

To co potrzebuję zrobić to przechwycić wynik wykonania metody z WCFa i zwalidować z poziomu kontrolera poprawność danych zanim ten wynik zostanie przesłany w postaci JSONa na FE.
Trop na jaki wpadłem to użycie filtrów akcji, ale nie wiem czy z ich poziomu można się dostać do danych, które dzieją się wewnątrz metod kontrolera.
Jest taki sposób? Ewentualnie jak to inaczej zrobić?

public class ImportFileComponentController : BaseController
{
        private readonly IReportsService _reportsService;

        protected override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            base.OnResultExecuting(filterContext);  // <--- tutaj nie ma danych wynikowych z WCFa
        }

        public ImportFileComponentController(IReportsService reportsService)
        {
            _reportsService = reportsService;
        }        

        [HttpPost]
        public JsonResult UploadFile(HttpPostedFileBase file)
        {
            var result = _reportsService.ImportFile(file);  //<---- jak wyciągnąć dane wynikowe po wykonaniu tej metody z WCF?

            return Json(new
                {
                    success = result.isSuccess,
                    errors = result.Messages,
                    filename = result.FileName
                }, "text/html");
        }
}
edytowany 1x, ostatnio: altek, 2018-11-28 12:44

Pozostało 580 znaków

2018-11-28 12:48
0

Opakuj sobie tę metodę w jakiś serwis i tam zrób walidację. W filtrze możesz tylko zobaczyć co wchodzi do metody kontrolera i co z niej wychodzi.

Pozostało 580 znaków

2018-11-28 12:56
0

Tylko, że jeśli walidacja nie przejdzie to potrzebuję wywołać popu na FE i przerwać działanie metody w kontrolerze.

Pozostało 580 znaków

2018-11-28 13:10
0

Wynajdujesz koło na nowo, jeśli akcja w kontrolerze się nie powiedzie to zwracasz http status 400: Bad Request, po bożemu ;)

Pozostało 580 znaków

2018-11-28 16:06
0
altek napisał(a):

To co potrzebuję zrobić to przechwycić wynik wykonania metody z WCFa i zwalidować z poziomu kontrolera poprawność danych zanim ten wynik zostanie przesłany w postaci JSONa na FE.
Trop na jaki wpadłem to użycie filtrów akcji, ale nie wiem czy z ich poziomu można się dostać do danych, które dzieją się wewnątrz metod kontrolera.
Jest taki sposób? Ewentualnie jak to inaczej zrobić?

Ale czemu chcesz używać filtrów do tego? Czemu tego po prostu nie zrobić po odebraniu response z WCF w kodzie? Tyle, że przeniósłbym to z kontrolerów do jakiegoś serwisu.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0