请为我解决此错误

时间:2013-05-08 12:52:00

标签: c#

protected void Page_Load(object sender, EventArgs e)
{
    DataSet ds = new DataSet();
    ds.ReadXml(Server.MapPath(@"C:\Users\Raymond\Documents\Visual Studio 2010\WebSites\WebSite17\XMLFile.xml"));
    Repeater1.DataSource= ds;
    Repeater1.DataBind();
}

我收到错误消息:

  

C:/ Users / Raymond / Documents / Visual Studio 2010 / WebSites / WebSite17 / XMLFile.xml'是物理路径,但需要虚拟路径。

2 个答案:

答案 0 :(得分:3)

删除MapPath

ds.ReadXml(@"C:\Users\Raymond\Documents\Visual Studio 2010\WebSites\WebSite17\XMLFile.xml");

物理路径是磁盘上的实际路径,而虚拟路径是Web应用程序中的路径。 MapPath将虚拟路径映射到物理路径。由于您已经拥有物理路径,因此您不需要它。

如果路径类似于~/XMLFile.xml

,则需要它
ds.ReadXml(Server.MapPath(@"~/XMLFile.xml");

~是您的Web应用程序在虚拟路径中的主页。

答案 1 :(得分:1)

正如例外情况告诉您:您正在传递物理路径c:\\

Server.MapPath需要虚拟路径~/