Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件上传后如何重定向?_C#_Asp.net - Fatal编程技术网

C# 文件上传后如何重定向?

C# 文件上传后如何重定向?,c#,asp.net,C#,Asp.net,我有一个File.aspx表单,其中显示所有文件 上传文件时,我使用upload.aspx文件运行c#代码来上传文件 问题是,在最后,我想自动刷新页面以显示新的文件上载,但显然它没有重定向,即使所有参数都很好 这是我使用的代码 HttpContext postedContext = HttpContext.Current; string param = Request.UrlReferrer.Query; string param2 = Reque

我有一个File.aspx表单,其中显示所有文件

上传文件时,我使用upload.aspx文件运行c#代码来上传文件

问题是,在最后,我想自动刷新页面以显示新的文件上载,但显然它没有重定向,即使所有参数都很好

这是我使用的代码

        HttpContext postedContext = HttpContext.Current;
        string param = Request.UrlReferrer.Query;
        string param2 = Request.UrlReferrer.Query;
        var url = HttpUtility.ParseQueryString(param).Get("projectName");
        var url2 = HttpUtility.ParseQueryString(param2).Get("projectId");
        HttpPostedFile file = postedContext.Request.Files[0];
        string name = file.FileName;
        byte[] binaryWriteArray = new
        byte[file.InputStream.Length];
        file.InputStream.Read(binaryWriteArray, 0,
        (int)file.InputStream.Length);
        //FileStream objfilestream = new FileStream(Server.MapPath("~\\" + "\\Files\\" + url + "\\" + name), FileMode.Create, FileAccess.ReadWrite);
        FileStream objfilestream = new FileStream(("C:\\inetpub\\wwwroot\\Clientportal\\Files\\" + url + "\\" + name), FileMode.Create, FileAccess.ReadWrite);
        objfilestream.Write(binaryWriteArray, 0, binaryWriteArray.Length);

        objfilestream.Close();
        string[][] JaggedArray = new string[1][];
        JaggedArray[0] = new string[] { "File was uploaded successfully" };
        JavaScriptSerializer js = new JavaScriptSerializer();
        string strJSON = js.Serialize(JaggedArray);
        Response.Write(strJSON);

        Response.Redirect(string.Format("Files.aspx?projectId={0}&projectName={1}", url2, url));
有什么想法吗?我有点卡住了,因为我在任何地方都使用这个response.redirect,它只在代码位于同一个代码文件中时才起作用


可能是因为我试图从另一个代码文件重定向?

我会尝试使用javascript在客户端重新加载:

window.location.reload()
如果作为响应获得的JSON包含消息“文件已成功上载”
如果不使用ajax提交文件,则不需要编写json。重定向到包含标识文件上载操作状态的参数的合适url就足够了。

ASP.NET允许您在重定向之前输出任何内容吗?重定向只是在头中发送给客户端的位置头。但在这之前,它只是标题,页面得到内容。或者我就是这样习惯的。因此,试着对回复进行评论。再写一次并检查一下?不起作用。这很奇怪,因为当我使用这个重定向时,当它位于同一个代码文件中时,它可以正常工作。但在这里,我正在呼叫另一个,它不想重定向。我确实删除了Json的响应,但它仍然没有改变任何东西。Window.location.reaload()不允许您这样认为。从这些信息中,我认为OP想要某种成功页面,可以重定向到文件或查看文件的页面。因此,客户端重定向将是一种方式。但您不能使用window.location=“example.com”吗?你可以试着对回复进行评论;您的代码将开始工作。@JohannduToit当然可以。通过使用相应的url设置window.location,您将重定向到正确的页面。是的,以前从未见过reload()方法。