2010-02-07 3 views
2

Мне нужно запустить действие Controller из моего консольного приложения, которое ссылается на мое приложение MVC.Вызов asp mvc Контроллер Действие из другого приложения в .net?

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

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

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

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

ответ

0

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

0

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

Если вы хотите, чтобы либо загрузить несколько файлов, или иметь другие параметры без файла в запросе см принятый ответ на этот вопрос Upload files with HTTPWebrequest (multipart/form-data)

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

Смежные вопросы