Controller این وظیفه را دارا است تا Request (ریکوئست یا درخواست) های کاربران را گرفته -خواه درخواست هایی از جنس GET خواه از جنس POST و غیره- و آنها را مدیریت کند. به طور مثال، زمانی که شما در لیست آموزشهای دوره ی آموزش اصول برنامه نویسی روی آموزش آشنایی با کنترلر در ام وی سی کلیک می کنید، ویوی صفحه ی لیست آموزشها یک درخواست از جنس GET برای کنترلر ماژول آموزشهای سایت ارسال می کند.
سپس کنترلر این وظیفه را دارا است تا درخواست را تجزیه و تحلیل کند و ببیند که کدام بخش از وب اپلیکیشن -یا بهتر بگوییم کدام مدل- مسئول رسیدگی به چنین درخواستی است. پس از مشخص شدن مدل هدف، درخواست در اختیارش قرار میگیرد و مدل هم دست به کار می شود. در نهایت، مدل Response (ریسپانس یا پاسخ) یی به ریکوئست دریافت شده میدهد که این ریسپانس هم میتوان در قالب یک آبجکت باشد و هم در قالب یک آرایه ای از دادههای مختلف و یا هر شکل دیگری از داده ها. سپس کنترلر ریسپانس را گرفته و تحویل ویو میدهد و این میشود که شما میتوانید این آموزش را مطالعه کنید.
پیش از این هم گفتیم که کنترلرها این اجازه را دارند که تاحدودی کار منطقی هم انجام دهند. این انجام دادن کارهای منطقی نه تنها در تضاد با وظایف مدل نیست، بلکه به نوعی کمک به مدل هم محسوب می شود. برای روشنتر شدن این مسأله مثالی می زنیم. فرض کنیم که ریسپانس دریافت شده از مدل یک آبجکت است و این در حالی است که ویو نیاز به دادههایی از جنس آرایه دارد. در چنین شرایطی به سادگی میتوانیم داخل کنترلر آبجکت دریافتی را به آرایه ای از دادهها تبدیل کرده سپس آن ارایه را حاضر و آماده در اختیار ویو قرار دهیم تا در معرض دید کاربران سایت قرار دهد.