Я бы не назвал это с контроллера. Я бы делегировал эту логику службе, используя разработку на основе интерфейса.
Быстрый Google дает множество результатов для анализатора CSV. Так что это всего лишь вопрос построения HTTP-запроса, анализа CSV и последующего сопоставления его с ViewModel.
Итак, ваш контроллер может выглядеть так:
private ICsvParsingService _csvParsingService; // tip: use DI to inject the concrete in ctor.
[HttpGet]
public ActionResult Csv()
{
var csv = _csvParsingService.Parse("http://mydomain.com/test.csv");
var model = Mapper.Map<SomeCsvType,YourModel>(csv); // AutoMapper. Or you could do L-R.
return View(model);
}
Таким образом, если вы решите использовать другой синтаксический анализатор CSV (или сверните свой собственный), ваш контроллер не должен меняться. И вы можете повторно использовать эту службу в своем приложении.