У меня есть визуальная веб-часть (созданная стандартным шаблоном Visual Stuido 2012 из формы "Добавить новый элемент" ) только с одним элементом <div id="newsListDiv" runat="server"></div>
. Я хочу программно добавить к нему свой собственный элемент управления, используя следующий код:
protected void Page_Load(object sender, EventArgs e)
{
NewsLine newsLine = Page.LoadControl(@"~/_ControlTemplates/MainTheme/NewsLine.ascx") as NewsLine;
newsListDiv.Controls.Add(newsLine);
}
Но когда я развертываю решение и добавляю веб-часть на страницу, он показывает страницу с ошибкой, сообщая мне, что файл '/_ControlTemplates/MainTheme/NewsLine.ascx' не существует. Но если я загляну в папку "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES\MainTheme", я вижу, что файл присутствует там. Я попытался установить уровень доверия на "Полный", но получил ту же ошибку. Я также попытался добавить пользовательский элемент управления в файл .ascx следующим образом:
<%@ Register Src="~/_controltemplates/MainTheme/NewsLine.ascx" TagPrefix="uc1" TagName="NewsLine" %>
<div id="newsListDiv" runat="server">
<uc1:NewsLine runat="server" id="NewsLine" />
</div>
И таким образом получите ошибку компиляции: "Имя" InitializeControl "не существует в текущем контексте". Я также заметил, что, как только я добавлю строку регистрации или ссылки (с помощью пути к моему пользовательскому элементу управления) в мой .ascx файл, файл .g.cs станет пустым! И он снова заполняется, когда я удаляю эту строку. Я пробовал много разных путей, например "../_controltemplates/", "/controltemplates/15/" и т.д. Но ни один из них не имел никакого значения. Я здесь отчаянно, пожалуйста, помогите!