簡體   English   中英

從.net中的另一個應用程序調用asp mvc Controller Action?

[英]Call asp mvc Controller Action from another application in .net?

我需要從控制台應用程序中運行引用我的MVC應用程序的Controller Action。

這背后的原因是因為有一些特殊的Action方法,我不能簡單地將其復制到新應用程序中。 (由於控制物)

所以我只想問問是否可以通過控制台應用程序調用控制器操作方法? 如何將文件上傳發送到控制器?

這是我用來上傳文件的ActionResult的示例嗎? 我應該如何發送Request.Files到它?

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

System.Net.WebClient.UploadFile ()可以將文件上傳到URL。

如果您要上傳多個文件,或在請求中包含其他非文件參數,請參見此問題的可接受答案, 使用HTTPWebrequest上傳文件(multipart / form-data)

也就是說,更好的解決方案是將ImageUp()重構為2種方法-第一種方法從HttpRequest中提取文件,第二種方法對那些文件進行操作。 然后,第二種方法無需HttpContext就可以使用,例如在控制台應用程序或單元測試中。

我很確定您可以,但是要正確插入所有內容需要花費一些工作。 您可以創建控制器類的實例,然后從該實例調用ImageUp方法。 為了正確設置Request.Files,您需要創建自己的ControllerContext實例,以便將所需的值推送到Request.Files中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM