构造函数字符串返回'文件不存在'错误

时间:2014-07-09 15:40:11

标签: c# asp.net sharepoint

我正在尝试构建一个SharePoint 2010 Web部件,其中包含一个名为“ChartUserControl.ascx”的用户控件。我理解这个文件需要使用以下语法加载到webpart中:

protected override void CreateChildControls()\
{
    Control control = Page.LoadControl(_ascxPath);
}

...其中“_ascxPath”是先前定义的字符串,引用我的用户控制文件在Sharepoint文件系统中的位置。因此,在部署我的项目之后,我对ChartUserControl.ascx进行了文件搜索,并在“14 \ TEMPLATE \ UpdatePanelTest”中找到它。

这意味着我的_ascxPath字符串应该类似于以下之一:

private const string _ascxPath = @"~/UpdatePanelTest/ChartUserControl.ascx";

//or

private const string _ascxPath = @"~/_UpdatePanelTest/ChartUserControl.ascx";

//or

private const string _ascxPath = @"~/TEMPLATE/UpdatePanelTest/ChartUserControl.ascx";

//or

private const string _ascxPath = @"~/_TEMPLATE/UpdatePanelTest/ChartUserControl.ascx";

但是所有这些可能性在运行时都会返回“文件不存在”错误。我做错了什么?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试使用Server.MapPath,因为LoadControl需要服务器路径,而不是虚拟目录路径。