C# 路径中存在非法字符。负荷控制

C# 路径中存在非法字符。负荷控制,c#,sitecore,sitecore6,C#,Sitecore,Sitecore6,我是C语言的新手,正在使用sitecore进行一个项目 我刚刚添加了一个带有 .aspx文件: 第16行的浏览器显示错误: 简单的问题就是你如何使用你的\。您需要在斜线上加倍\\。第一个用作第二个的转义字符 Control templateControl = LoadControl("templateLandingPages\\free_template.ascx"); 如前所述,您还可以使用: Control templateControl = LoadControl(@"templateL

我是C语言的新手,正在使用sitecore进行一个项目

我刚刚添加了一个带有

.aspx文件:

第16行的浏览器显示错误:


简单的问题就是你如何使用你的\。您需要在斜线上加倍\\。第一个用作第二个的转义字符

Control templateControl = LoadControl("templateLandingPages\\free_template.ascx");
如前所述,您还可以使用:

Control templateControl = LoadControl(@"templateLandingPages\free_template.ascx");

查看字符串文字以及为什么要使用一种符号而不是另一种符号。

在C中使用路径时,需要使用\\,而不是\。它将转义反斜杠,使其仅为一个文本\。

将@放在路径字符串的开头,如@templatelandPages\free\u template.ascx

代码:


前缀@允许使用关键字作为标识符,这在与其他编程语言交互时非常有用。字符@实际上不是标识符的一部分,因此该标识符在其他语言中可能被视为普通标识符,没有前缀。带有@前缀的标识符称为逐字标识符。

C支持两种形式的字符串文字:常规字符串文字和逐字字符串文字

您需要使用转义或逐字字符串

var escaped = "templateLandingPages\\free_template.ascx";
var verbatim = @"templateLandingPages\free_template.ascx";

解决路径中非法字符问题的一种方法是,在初始化函数调用中注释所有成员变量实例化,然后逐个取消注释,以找到问题的确切位置。希望这对你也有帮助LoadControl@templateLandingPages\免费_template.ascx;。说得好。包含有关字符串文字的其他信息。修改后的答案非常感谢。还有一个问题,如果我在我的页面中有一些变量,我如何在模板中传递它,即free\u template.ascx检查这个参数,还有这个链接,我认为你缺少了一个“\”。你是对的!编辑器不会显示第二个\除非以代码格式显示。
Control templateControl = LoadControl("templateLandingPages\\free_template.ascx");
Control templateControl = LoadControl(@"templateLandingPages\free_template.ascx");
Control templateControl = LoadControl(@"templateLandingPages/free_template.ascx");
var escaped = "templateLandingPages\\free_template.ascx";
var verbatim = @"templateLandingPages\free_template.ascx";