Asp.net Webforms:ascx中的内联文本阻止编译

Asp.net Webforms:ascx中的内联文本阻止编译,asp.net,webforms,ascx,Asp.net,Webforms,Ascx,我的.ascx文件中有以下snippit: <%@ Control Language="C#" Inherits="MyCompany.Modules.Discovery.ViewDiscovery" AutoEventWireup="true" CodeBehind="ViewDiscovery.ascx.cs" %> <div id="ViewDiscovery_<asp:Literal ID="litModuleId" runat="server" /&g

我的.ascx文件中有以下snippit:

<%@ Control Language="C#" Inherits="MyCompany.Modules.Discovery.ViewDiscovery"
    AutoEventWireup="true" CodeBehind="ViewDiscovery.ascx.cs" %>

<div id="ViewDiscovery_<asp:Literal ID="litModuleId" runat="server" />"></div>
<script type="text/javascript" src="<asp:Literal ID="litControlPath" runat="server" />carousel-jquery.js"></script>
<script type="text/javascript" src="<asp:Literal ID="litControlPath2" runat="server" />discovery-widget.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        var myData = <asp:Literal ID="litContent" runat="server" />;
        var myDiscovery = discovery('<asp:Literal ID="litControlPath3" runat="server" />');
        myDiscovery.json(myData);
        myDiscovery.init("ViewDiscovery_<asp:Literal ID="litModuleId2" runat="server" />");
    });
</script>
<%@ Control Language="C#" Inherits="MyCompany.Modules.Discovery.ViewDiscovery"
    AutoEventWireup="true" CodeBehind="ViewDiscovery.ascx.cs" %>

<%=this.strContent %>
相关的,或者这里还有其他问题吗

编辑:我曾尝试使用
,但没有成功。这是我的代码背后的一个讽刺:

namespace MyCompany.Modules.Discovery
{
    partial class ViewDiscovery : PortalModuleBase, IActionable
    {
        public string strContent = "Insert Content Here!";

        protected void Page_Load(object sender, System.EventArgs e)
        {
            // Do stuff here!

            this.strContent = "My content!";
        }
    }
}
如果我在ascx文件中执行此操作:

<%@ Control Language="C#" Inherits="MyCompany.Modules.Discovery.ViewDiscovery"
    AutoEventWireup="true" CodeBehind="ViewDiscovery.ascx.cs" %>

<div id="ViewDiscovery_<asp:Literal ID="litModuleId" runat="server" />"></div>
<script type="text/javascript" src="<asp:Literal ID="litControlPath" runat="server" />carousel-jquery.js"></script>
<script type="text/javascript" src="<asp:Literal ID="litControlPath2" runat="server" />discovery-widget.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        var myData = <asp:Literal ID="litContent" runat="server" />;
        var myDiscovery = discovery('<asp:Literal ID="litControlPath3" runat="server" />');
        myDiscovery.json(myData);
        myDiscovery.init("ViewDiscovery_<asp:Literal ID="litModuleId2" runat="server" />");
    });
</script>
<%@ Control Language="C#" Inherits="MyCompany.Modules.Discovery.ViewDiscovery"
    AutoEventWireup="true" CodeBehind="ViewDiscovery.ascx.cs" %>

<%=this.strContent %>


…我的页面上没有显示任何内容。浏览一下.ascx文件中“this”的上下文,就会发现它的类型是“ASP.viewdiscovery\u ascx”,而不是我预期的“viewdiscovery”。

我没有使用DNN,但对于我认为您正在尝试的操作,内联表达式应该可以工作

在代码隐藏中,您有一些属性(或方法):

然后您可以按如下方式使用它们:

<div id="ViewDiscovery_<%= ModuleId %>" ></div>
<script type="text/javascript" src="<%= ControlPath %>carousel-jquery.js"></script>
<script type="text/javascript" src="<%= ControlPath2 %>discovery-widget.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        var myData = <%= Content %>;
        var myDiscovery = discovery('<%= ControlPath3 %>');
        myDiscovery.json(myData);
        myDiscovery.init("ViewDiscovery_<%= ModuleId2 %>");
    });
</script>

$(文档).ready(函数(){
var myData=;
var myDiscovery=discovery(“”);
json(myData);
myDiscovery.init(“ViewDiscovery_”);
});
应生成以下HTML:

<div id="ViewDiscovery_1" ></div>
<script type="text/javascript" src="path1/carousel-jquery.js"></script>
<script type="text/javascript" src="path2/discovery-widget.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        var myData = somecontent;
        var myDiscovery = discovery('path3/');
        myDiscovery.json(myData);
        myDiscovery.init("ViewDiscovery_2");
    });
</script>

$(文档).ready(函数(){
var myData=somecontent;
var myDiscovery=discovery('path3/');
json(myData);
myDiscovery.init(“ViewDiscovery_2”);
});

这是我尝试的第一件事。没有爱。看到我原来的帖子了。所以当你看到页面的Html时,那些占位符没有被填满?您提到的类类型——“ASP.viewdiscovery\U ascx”是由ASP.net生成的,它不应该破坏任何东西。(如果需要的话,您可以覆盖它。)我已经更新了我的答案,以显示运行此操作时生成的HTML。