从ASPX页面将文件发送到mvc控制器

时间:2017-10-19 21:04:38

标签: c# asp.net asp.net-mvc

我正在使用网络扫描解决方案,我正在尝试将文件从aspx页面重定向到mvc控制器。扫描的图像使得aspx页面很好,但我无法弄清楚如何将文件送到MVC控制器。 这是我的代码:

            HttpFileCollection files = HttpContext.Current.Request.Files;
            HttpPostedFile uploadfile = files["RemoteFile"];string fileName = uploadfile.FileName;
            string seqNum = HttpContext.Current.Request.Form["sequenceNum"];
            string imageIndex = HttpContext.Current.Request.Form["imageIndex"];
            string docId = HttpContext.Current.Request.Form["docId"];
            string guid = HttpContext.Current.Request.Form["guid"];
            string url = "/controller/action/" + guid + "?fileName=" + fileName + "&imageIndex=" + imageIndex + "&sequenceNum=" + seqNum + "&docId=" + docId;

我尝试将Response.Redirect与url中的文件一起使用,但它一直被删除。扫描文件并在客户端计算机上没有保存的路径(潜在的医疗记录+ HIPAA使其成为禁忌)。我错过了什么?

我尝试重新修改路线,现在scanner.aspx接管所有路由。这是路由方法:

public static void RegisterRoutes(RouteCollection routes) {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapPageRoute("", "scanner.aspx", "~/UtilityClasses/scanner.aspx");
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{guid}",
            defaults: new { controller = "Login", action = "Index", guid = UrlParameter.Optional }
        );
    }

这是经过更多努力后的最新更新。

public static void RegisterRoutes(RouteCollection routes) {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapPageRoute("", "scanner.aspx", "~/TextDocuments/GetScannedDocument");
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{guid}",
            defaults: new { controller = "Login", action = "Index", guid = UrlParameter.Optional }
        );
    }

控制器名称为TextDocumentsController,操作为GetScannedDocument

这件事正在成为一本书...我更好地了解了一些附加的例子,我让MapPageRoute工作。但我仍在查看我的scanner.aspx.cs页面,我不知道如何将HttpPostedFile发送到我的MVC控制器。

这是我现在坐的MapPageRoute。它仍然将我发送到aspx页面后面的代码而不是MVC控制器。我错过了什么?

        routes.MapPageRoute("Scanner",
            "TextDocuments/GetScannedDocument",
            "~/UtilityClasses/scanner.aspx", 
            true, null, 
            new RouteValueDictionary { { "incoming", new MyCustomConstaint()} });

1 个答案:

答案 0 :(得分:-1)

使用Server.MapPath

public ViewResult ShowForm()
{
    //Logo
    ViewBag.Img = Server.MapPath("~") + @"Content\Images\Logo.png";
    return View("ShowForm");
}