0

新しい .ascx を作成し、そのインスタンスでその特定の .ascx を指すだけで、フロントエンド開発者がテンプレート化できる ascx コントロールを作成しようとしています。ただし、共有コード ビハインド シナリオでのプロパティへのアクセスに問題があります。

共有されている次のコードの背後にあります

public partial class TemplateCodeBehind : TemplateControlBase
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    // Ascx Available properties
    public string GetOption1Value { get { return Option1; } }
    public string GetOption2Value { get { return Option2; } }
    public string GetOption3Value { get { return Option3; } }
    public string GetOption4Value { get { return Option4; } }
}

TemplateControlBase返されるオプションは、クラスのパブリック プロパティであることに注意してください。Templates サブフォルダーには、次の ascx があります。

<%@ Control Language="C#" AutoEventWireup="false" CodeBehind="../TemplateCodeBehind.ascx.cs" Inherits="MyNamespace.JqueryTemplates.TemplateCodeBehind" %>
<%@ Import Namespace="MyNamespace.JqueryTemplates" %>

<div>
     Option1: <%= GetOption1 %>

</div>

これは正常にコンパイルされますが、テスト ascx をロードしようとすると、次のエラーが発生します

エラーが発生しました。DotNetNuke.Services.Exceptions.PageLoadException: c:\Projects\DNN-Dev\Website\DesktopModules\Module.JqueryTemplates\Templates\Test.ascx(5): エラー CS0103: 名前 'GetOption1' は現在のコンテキストに存在しません

に変更<%=<%#て呼び出してみましPage.Databind()たが、何も機能していないようです。

これを達成する方法についてのアイデアはありますか?

4

1 に答える 1

2

ascxファイルで次のように変更GetOption1しますGetOption1Value

于 2012-09-26T16:06:56.777 に答える