2010-02-07 33 views
2

我需要從引用我的MVC App的控制檯應用程序運行Controller Action。從.net中的另一個應用程序調用asp mvc控制器?

這背後的原因是因爲有一些特殊的Action方法,我不能直接複製到新的應用程序。 (因爲控制的東西)

所以我只是想問,是否有任何方式可以從控制檯應用程序調用控制器操作方法?我怎麼能發送文件上傳到控制器?

這是我的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()分成兩種方法 - 第一種從HttpRequest中提取文件,第二種在這些文件上執行。第二種方法可以在沒有HttpContext的情況下使用,例如在控制檯應用程序或單元測試中。

相關問題