0

我有几个项目的解决方案。两者都使用内联表达式语法,例如:

<p><a runat="server" href="<%=MyProject.Global.PathSite %>">My Link</a></p>

假设 MyProject.Global.PathSite 等于

public const String Whatever = @"http://www.myurl.com/";

在设计时和运行时项目 A(我在解决方案中创建的第一个项目)正确地计算表达式,而项目 B(我几个月后创建的第二个项目)将表达式计算为

%3c%25=MyProject.Global.PathSite%20%25%3e

基本上,ASP.Net 将 <% %> 作为 HTML 文本而不是它应该处理的标记,而第二个则没有。

有什么想法吗?

更新:我修改了问题的措辞以更好地理解。

4

2 回答 2

1

在为这个问题困扰了几个星期之后,我终于找到了问题所在。

问题是你不能在任何标签中使用 <% %>,其中 runat 属性是 server。您只能在客户端标签上使用 <% %>。

对于在服务器上运行的标签,则只需转到 Page_Load 事件并通过后面的代码输入属性。

于 2013-09-02T23:52:52.263 回答
0

尝试将 <%=MyProjectName.ClassName.PublicProperty %> 放入带有 runar=server 的文字中,实际上您可以同时使用两者。

于 2013-08-18T21:49:05.373 回答