Вызовите asp mvc Controller Action из другого приложения в .net? - PullRequest
2 голосов
/ 07 февраля 2010

Мне нужно запустить действие контроллера из моего консольного приложения, которое ссылается на мое приложение MVC.

Причина этого в том, что есть какой-то особый метод Action, который я не могу просто скопировать в новое приложение. (Из-за контроля вещей)

Итак, я просто хочу спросить, может ли быть способ вызова метода действия контроллера из консольного приложения? Как я могу отправить загрузку файла на контроллер?

Это пример моего ActionResult, который использовался для загрузки файла? как я должен отправить Request.Files к нему?

  public ActionResult ImageUp(){
        foreach (string fname in Request.Files)
        {
            HttpPostedFileBase _file = Request.Files[fname];
        }
  }

Ответы [ 2 ]

0 голосов
/ 07 февраля 2010

Я почти уверен, что вы можете, но для правильного подключения понадобится немного работы. Вы можете создать экземпляр класса контроллера и вызвать метод ImageUp из этого экземпляра. Чтобы правильно настроить Request.Files, вам нужно будет создать свой собственный экземпляр ControllerContext, чтобы вставить нужные значения в Request.Files.

0 голосов
/ 07 февраля 2010

System.Net.WebClient.UploadFile () может загрузить файл на URL-адрес.

Если вы хотите либо загрузить несколько файлов, либо иметь другие не файловые параметры в запросе, см. Принятый ответ на этот вопрос Загрузка файлов с помощью HTTPWebrequest (multipart / form-data)

Тем не менее, лучшим решением было бы преобразовать ImageUp () в 2 метода - первый извлекает файлы из HttpRequest, а второй действует на эти файлы. Затем второй метод можно использовать без HttpContext, например, в консольном приложении или модульном тесте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...