【问题标题】:Call asp mvc Controller Action from another application in .net?从.net 中的另一个应用程序调用asp mvc 控制器操作?
【发布时间】:2010-02-07 12:59:48
【问题描述】:

我需要从我的控制台应用程序中运行一个引用我的 MVC 应用程序的控制器操作。

这背后的原因是因为有一些特殊的 Action 方法我不能简单地复制到新的应用程序中。 (因为控制的东西)

所以我只想问是否有任何方法可以从控制台应用程序调用控制器操作方法?如何将文件上传发送到控制器?

这是我用来上传文件的 ActionResult 的例子吗?我应该如何将 Request.Files 发送给它?

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

【问题讨论】:

    标签: c# asp.net-mvc console


    【解决方案1】:

    我很确定你可以,但要正确插入所有内容需要做一些工作。您可以创建控制器类的实例并从该实例调用 ImageUp 方法。要正确设置 Request.Files,您需要创建自己的 ControllerContext 实例,以便将所需的值推送到 Request.Files。

    【讨论】:

      【解决方案2】:

      System.Net.WebClient.UploadFile() 可以将文件上传到 URL。

      如果您想上传多个文件,或在请求中包含其他非文件参数,请参阅此问题的已接受答案Upload files with HTTPWebrequest (multipart/form-data)

      也就是说,更好的解决方案是将 ImageUp() 重构为 2 个方法 - 第一个从 HttpRequest 中提取文件,第二个对这些文件进行操作。第二种方法可以在没有 HttpContext 的情况下使用,例如在控制台应用程序或单元测试中。

      【讨论】:

        猜你喜欢
        • 2010-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-28
        相关资源
        最近更新 更多