У меня есть следующий фрагмент в моем файле .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>
Как вы могли бы вывести из выделения синтаксиса (или, скорее, насколько он поврежден), если я попытаюсь скомпилировать мойФайл CodeBehind с этим файлом .ascx, он ужасно терпит неудачу, потому что он не распознает различные литералы, которые я разбросал по файлу, и, следовательно, мой файл codebehind не компилируется.Я должен удалить их с их позиций, поместить их в конец файла, не обремененного их контекстом на странице, скомпилировать, а затем вернуться к исходной версии.
Конечно, есть более хороший способ поместить литералына странице.
РЕДАКТИРОВАТЬ: Когда я упаковываю свой модуль и устанавливаю его на другой экземпляр DotNetNuke (он прекрасно работает локально, пока я выполняю этот ригамароль при компиляции),выдает ошибку:
DotNetNuke.Services.Exceptions.ModuleLoadException: The tag contains duplicate 'ID' attributes
Связано, или здесь происходит какая-то другая проблема?
РЕДАКТИРОВАТЬ : Я пытался использовать <%=variable %>
, но убежищене получил нигде.Это фрагмент моего кода:
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" %>
<%=this.strContent %>
... на моей странице ничего не появится.Просмотр контекста «this» в файле .ascx показывает, что он имеет тип «ASP.viewdiscovery_ascx», а не «ViewDiscovery», как я ожидал.