4

我的 VS 2010 问题之一有问题。假设我在网站 MyWebSite 中有一个页面 MyPage.aspx,其虚拟路径为 MyWebSitePath。当我将调用重定向到另一个页面 MyPage1.aspx 时,我的虚拟路径加倍并且我得到 HTTP 错误 400 - 错误请求,这是有道理的,因为我得到的 Url 是MyWebSite/MyWebSite/MyPage1.aspx.

我用Response.Redirect("~/MyPage1.aspx",true);

我已经尝试过使用重定向页面的字符串。不是这样,我猜它可能在某处的 SLN 文件中,但我真的不知道。

变酸的代码示例:

/// <summary>
/// Play audio file using response.redirect, can throw
/// </summary>
/// <param name="response">used to redirect to the created file path</param>
/// <param name="filePath"></param>
/// <param name="fileName"></param>
public static void PlayAudioFile(Page page, string filePath, string fileName) 
{        
    const string TempFolder ="tmp";
    string newPath = page.Server.MapPath(TempFolder);
    string newFileName = Guid.NewGuid().ToString() + fileName;
    System.IO.File.Copy(filePath +"\\" + fileName, newPath+"\\" + newFileName,true);
    page.Response.Redirect(TempFolder + "\\" + newFileName);
}

在此先感谢,尤瓦尔

4

1 回答 1

3

它花了很长时间,但我终于弄清楚了问题所在。问题是这个小虫子(明白吗?虫子?):

 asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"          
 EnableScriptGlobalization="true"
        EnableScriptLocalization="true"
 /asp:ToolkitScriptManager>

当我将它切换到标准时,一切都开始工作了。不幸的是,我忽略了说这个项目是建立在一个旧项目之上的,该项目是从 VS2008 迁移到 VS2010 的,以及它的所有二进制文件。我没有彻底研究过,但似乎这是由于使用了不合适的 Ajax Control Toolkit 版本造成的。我的项目是.Net 4.0,工具包是3.5。

谢谢你所有的时间,尤瓦尔。

于 2012-07-12T12:38:58.947 回答