要素が1つだけのビジュアルWebパーツ(「新しいアイテムの追加」フォームの標準の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);
}
しかし、ソリューションをデプロイしてWebパーツをページに追加すると、エラーページが表示され、ファイル'/_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ファイルにRegisterまたはReference行(ユーザーコントロールへのパスを含む)を追加するとすぐに、.g.csファイルが空白になることにも気づきました。そして、その行を削除すると、再びいっぱいになります。「../_controltemplates/」、「/ controltemplates / 15 /」など、さまざまなパスの記述を試しましたが、いずれも違いはありませんでした。私はここで必死になっています、助けてください!